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) :
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.
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 :
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.
Partager