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 :

Problème de contrainte d'intégrité référentielle


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 26
    Points : 20
    Points
    20
    Par défaut Problème de contrainte d'intégrité référentielle
    Bonjour,

    Aussi bebête que cela puisse paraître, j'ai un léger problème dans l'ajout d'une contrainte d'intégrité référentielle entre 2 de mes tables.

    Je possède une table Livre et une table Chapitre. Un livre peut avoir de 1 à n chapitre.

    Le code de création de mes tables, sans contrainte (ce code fonctionne) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var sQuery:String = "CREATE TABLE IF NOT EXISTS Livre(";
     
    			sQuery += "ID INTEGER PRIMARY KEY, "
    			sQuery += "Titre TEXT, "
    			sQuery += "Auteur TEXT, "
    			sQuery += "DateOriginale Date, "
    			sQuery += "Editeur TEXT, "
    			sQuery += "DateEpub Date, "
    			sQuery += "Genre TEXT, "
    			sQuery += "Source TEXT, "
    			sQuery += "Droits TEXT, "
    			sQuery += "ISBN TEXT, "
    			sQuery += "Langue TEXT "
    			sQuery += ")";
    Lui aussi fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var sQuery:String = "CREATE TABLE IF NOT EXISTS Chapitre(";
     
    			sQuery += "IDChapitre INTEGER PRIMARY KEY, "
    			sQuery += "ID INTEGER, "
    			sQuery += "Cha_IDChapitre INTEGER, "
    			sQuery += "TitreChapitre TEXT "
    			sQuery += ")";
    Bref, à ce stade je peux enregistrer mes données (seulement les livres, sans chapitre), les récupérer, les modifier et les supprimer.

    Ma BDD se résume à un fichier .sqli que j'ai ouvert avec SQLI Database Browser. A l'aide de cet utilitaire, je voudrai ajouter la contrainte suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter table Chapitre add constraint FK_EST_POSSEDE foreign key (ID) references Livre (ID) on delete restrict on update restrict
    Mais la ça coince, il me dit : "near "constraint": syntax error".

    Cela est-il du à la subtilité de ce format sqli (différent de sql ?), ou bien faut-il que j'aille vite fait revoir mes cours sur le langage sql ?

    Merci.

  2. #2
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Je ne vois pas d'erreur de syntaxe.
    La colonne ID de la table Chapitre est-elle indexée ?

Discussions similaires

  1. Contraintes d'intégrité référentielle
    Par Jenesépa dans le forum Langage SQL
    Réponses: 3
    Dernier message: 22/02/2011, 17h39
  2. [8i] Contraintes d'intégrité référentielles
    Par apersonnat dans le forum Administration
    Réponses: 4
    Dernier message: 03/09/2010, 08h48
  3. Phpmyadmin et contraintes d'intégrité référentielle ?
    Par Jiraiya42 dans le forum Requêtes
    Réponses: 28
    Dernier message: 22/02/2008, 11h31
  4. Réponses: 10
    Dernier message: 24/09/2006, 15h08
  5. Réponses: 5
    Dernier message: 26/10/2005, 15h43

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