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 :

contrainte ON DELETE


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club Avatar de yasmine*
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 100
    Points : 63
    Points
    63
    Par défaut contrainte ON DELETE
    bonsoir à tous
    j'ai une requete que j'arrive pas a exécuter sur ma base de données mysql sous easyPHP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE TABLE commande (
      num_cmd VARCHAR(10) NOT NULL ,
      num_fourn VARCHAR(20) NOT NULL ,
      date_cmd TIMESTAMP NOT NULL ,
     PRIMARY KEY (num_cmd) ,
     FOREIGN KEY (num_fourn) REFERENCES fournisseur(num_fourn) ON DELETE SET NULL ,
    ) TYPE = InnoDB
    quand j'enlève ça marche.
    merci de m'aider et bonne nuit pour ceux qui vons dormir

  2. #2
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Vous ne pouvez pas mettre une contrainte NOT NULL sur une colonne et demander à la base de mettre cette colonne à NULL en cas de DELETE "cascade". Si vous otez la contrainte NOT NULL, cela fonctionne
    (avec MySQL 5.0.41):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    --------------
    DROP TABLE IF EXISTS test.commande
    --------------
     
    --------------
    DROP TABLE IF EXISTS test.fournisseur
    --------------
     
    --------------
    CREATE TABLE test.fournisseur (
      num_fourn VARCHAR(20),
      nom_fourn VARCHAR(30),
      PRIMARY KEY(num_fourn)
    ) ENGINE = InnoDB
    --------------
     
    --------------
    CREATE TABLE test.commande (
      num_cmd VARCHAR(10) NOT NULL ,
      num_fourn VARCHAR(20),
      date_cmd TIMESTAMP NOT NULL ,
     PRIMARY KEY (num_cmd) ,
     FOREIGN KEY (num_fourn) REFERENCES test.fournisseur(num_fourn) ON DELETE SET NU
    LL
    ) ENGINE = InnoDB
    --------------

  3. #3
    Membre du Club Avatar de yasmine*
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 100
    Points : 63
    Points
    63
    Par défaut
    merci

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

Discussions similaires

  1. Ajout de contraintes On Delete Cascade sur des foreign key
    Par weebo dans le forum Développement
    Réponses: 7
    Dernier message: 21/02/2011, 10h03
  2. Réponses: 3
    Dernier message: 08/01/2010, 10h04
  3. Réponses: 2
    Dernier message: 07/01/2010, 11h47
  4. MAJ d'une contrainte en DELETE CASCADE
    Par Flashball dans le forum Requêtes
    Réponses: 9
    Dernier message: 01/03/2009, 01h06
  5. Ajouter la contrainte ON DELETE SET NULL a postériori
    Par EvilAngel dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 24/09/2006, 11h36

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