IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

ON DELETE SET autre chose que null


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Points : 20
    Points
    20
    Par défaut ON DELETE SET autre chose que null
    Bonjour bonjour,
    j'aimerai simplement savoir si on peut donner une autre valeur que null a ON DELETE (vous me direz essaye, j'ai essaye ON DELETE SET 1 sur un champs entier ca marche pas). Donc est-ce que c'est une mauvaise syntaxe, ou est-ce que on ne peut tout simplement rien mettre d'autre que null?


    Je veux changer car j'ai une table catégorie qui contient 4 catégorie, la premiere étant aucune.
    Ce que je veux c'est que si on supprime une catégorie, les personnes qui étaient dedans voient leur catégorie passer a aucune (soit l'identifiant passer à 1)

    voila des bouts de mes tables:
    create table personne (
    idpersonne [...]
    idcategorie INT NOT NULL,
    INDEX ref_categ (idcategorie)
    FOREIGN KEY (idcategorie) REFERENCES categorie(idcategorie) ON UPDATE CASCADE ON DELETE SET 1
    );

  2. #2
    Membre éprouvé
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Points : 984
    Points
    984
    Par défaut
    Salut,

    Les seules possibilités sont :

    [ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION}]
    Pour faire ce que tu veux faire, tu peux créer un trigger before delete et réaliser un UPDATE dedans. Ca devrait fonctionner mais à partir de MySQL 5.

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Points : 20
    Points
    20
    Par défaut
    C'est bien ce que je pensais alors... on peut pas

    Je travaille sous MySQL 4.1

    Bon ben j'vais devoir être moins fainéant que prévu et vérifier à chaque fois si c'est null ou non pour afficher le nom de la catégorie ou aucune...

    Edit: Les jointures... tellement pratiques...et j'y pense jamais
    merci biglo.

  4. #4
    Membre éprouvé
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Points : 984
    Points
    984
    Par défaut
    Citation Envoyé par minirom
    Bon ben j'vais devoir être moins fainéant que prévu et vérifier à chaque fois si c'est null ou non pour afficher le nom de la catégorie ou aucune...
    Ca ne devrait pas poser beaucoup de problèmes avec une jointure externe gauche et un IFNULL(libCat, "Aucune") dans le SELECT qui retourne la catégorie d'une personne.

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Points : 20
    Points
    20
    Par défaut
    j'embete encore un peu:

    ma table personne comporte 2 clés étrangères de meme type: idcategorie et idsecteur.

    quand je fais:

    SELECT nompersonne,nomsecteur,nomcategorie
    FROM personne
    LEFT JOIN Secteur ON personne.idsecteur=Secteur.idsecteur
    LEFT JOIN Categorie ON personne.idcategorie=categorie.idcategorie;
    categorie et secteur sont simple:
    secteur/categorie (idsecteur/categorie(PK), nomsecteur/catgorie)

    Je les mets comment les IFNULL?

    Edit: c'est bon j'ai trouve je mettais les ifnull apres le left join au lieu de apres le select

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Une bibliothèque pour faire autre chose que jouer avec ma carte graphique ?
    Par Neilos dans le forum Coprocesseurs et calcul hétérogène
    Réponses: 7
    Dernier message: 09/11/2006, 09h51
  2. Autre chose que les SSII
    Par Invité dans le forum Emploi
    Réponses: 18
    Dernier message: 25/08/2006, 12h36
  3. Réponses: 11
    Dernier message: 13/05/2006, 15h17
  4. Arrive plus a installer autre chose que debian
    Par kosmic dans le forum Debian
    Réponses: 10
    Dernier message: 12/12/2005, 11h50
  5. [langage] connaissez-vous autre chose que -d
    Par Sébastien dans le forum Langage
    Réponses: 4
    Dernier message: 05/08/2002, 20h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo