Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/05/2011, 15h14   #1
Invité de passage
 
Homme Nicolas RIFFAUD
Étudiant
Inscription : novembre 2010
Messages : 25
Détails du profil
Informations personnelles :
Nom : Homme Nicolas RIFFAUD
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2010
Messages : 25
Points : 0
Points : 0
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 :
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 :
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 :
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.
rillette87 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 16h11   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 998
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 10 998
Points : 18 262
Points : 18 262
Envoyer un message via MSN à CinePhil
Je ne vois pas d'erreur de syntaxe.
La colonne ID de la table Chapitre est-elle indexée ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h35.


 
 
 
 
Partenaires

Hébergement Web