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

SQL Procédural MySQL Discussion :

alter table on delete cascade, erreur syntaxe


Sujet :

SQL Procédural MySQL

  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut alter table on delete cascade, erreur syntaxe
    Bonjour,

    j'ai une reerue de syntaxe sur la commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    ALTER TABLE `lldiffusion_commande_detail` FOREIGN KEY ( `commande` ) REFERENCES `lldiffusion_commande` ( `id` ) ON DELETE CASCADE ON UPDATE NO ACTION ;
    l'erreur est la suivante :

    #1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'FOREIGN KEY (`commande`) REFERENCES `lldiffusion_commande` (`id



    pouvez-vous me dire ce qui ne va pas.

  2. #2
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Il manque ADD et le nom de la contrainte devant FOREIGN KEY.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ALTER TABLE yourtablename
        ADD [CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, ...)
        REFERENCES tbl_name (index_col_name, ...)
        [ON DELETE {CASCADE | SET NULL | NO ACTION | RESTRICT}]
        [ON UPDATE {CASCADE | SET NULL | NO ACTION | RESTRICT}]
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  3. #3
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    quelle est cette notion de CONSTRAINT symbol,
    c'est un champ de ma table?

  4. #4
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    voilà ce que montre le show create :

    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
     
     
    CREATE TABLE `lldiffusion_commande_detail` (
     `id` int(10) unsigned NOT NULL auto_increment,
     `commande` int(10) unsigned NOT NULL default '0',
     `article` varchar(30) NOT NULL default '',
     `marque` varchar(128) NOT NULL default '',
     `categorie` varchar(128) NOT NULL default '',
     `sous_categorie` varchar(128) NOT NULL default '',
     `prix_ht` decimal(10,2) unsigned NOT NULL default '0.00',
     `prix_ttc` decimal(10,2) unsigned NOT NULL default '0.00',
     `quantite` int(10) unsigned NOT NULL default '0',
     `total_ht` decimal(10,2) unsigned NOT NULL default '0.00',
     `total_ttc` decimal(10,2) unsigned NOT NULL default '0.00',
     PRIMARY KEY  (`id`),
     KEY `commande` (`commande`,`article`)
    ) TYPE=MyISAM COMMENT='Table qui détaille la commande'
    et le deuxième

    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
     
     
    CREATE TABLE `lldiffusion_commande` (
     `id` int(10) unsigned NOT NULL auto_increment,
     `client` varchar(128) NOT NULL default '',
     `date` timestamp(14) NOT NULL,
     `total_ht` decimal(10,2) unsigned NOT NULL default '0.00',
     `total_ttc` decimal(10,2) unsigned NOT NULL default '0.00',
     `total_ttc_ref` decimal(10,2) unsigned NOT NULL default '0.00',
     `expedition` varchar(128) NOT NULL default '',
     `etat` varchar(128) NOT NULL default '',
     `type_paiement` varchar(128) default NULL,
     `envoi` varchar(128) default NULL,
     `mail_envoi` char(2) default NULL,
     `frais_port` varchar(30) default NULL,
     `frais_port_ref` varchar(30) default NULL,
     `dom_tom` char(3) NOT NULL default '',
     `contexte` varchar(128) default NULL,
     PRIMARY KEY  (`id`),
     KEY `client` (`client`)
    ) TYPE=MyISAM COMMENT='Table de la commande globale'

  5. #5
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 906
    Points : 6 031
    Points
    6 031
    Par défaut
    Les FK nécessitent la création de tables InnoDB ( les tiennes sont en MyISAM).

    Et pour créer de telles tables, le serveur doit être lancé avec InnoDB activé.
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

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

Discussions similaires

  1. Erreur de syntaxe dans l'instruction ALTER TABLE
    Par cakeke dans le forum Access
    Réponses: 1
    Dernier message: 25/12/2006, 15h30
  2. [VB6] Alter table alter column syntaxe
    Par enibris dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 13/04/2006, 17h11
  3. Erreur #1064 - Problème ALTER TABLE
    Par 12_darte_12 dans le forum Requêtes
    Réponses: 6
    Dernier message: 08/03/2006, 15h25
  4. [9i] syntaxe de ALTER TABLE ... DROP PARTITION
    Par dyvim dans le forum Oracle
    Réponses: 1
    Dernier message: 03/02/2006, 11h52
  5. Erreur ORA00054 lors d'un alter table
    Par claralavraie dans le forum Oracle
    Réponses: 3
    Dernier message: 13/01/2006, 17h02

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