dans SQLite, comment mettre en place une relation de plusieurs à plusieurs
Je suis prise d'une base de données SQLite qui a une beaucoup de beaucoup de relation que j'ai cassé en deux, de nombreuses relations avec le code suivant
SQLiteManager: CREATE TABLE "main"."LESSONS"
(
"LESSONID" INTEGER PRIMARY KEY
NOT NULL , "MODULEID" INTEGER, FOREIGN KEY(MODULEID) REFERENCES MODULES
(MODULEID), "STUDENTID" INTEGER, FOREIGN KEY (STUDENITD) REFERENCES STUDENTS
(STUDENTID)
)
Erreur:
[near ""STUDENTID"": syntax error ]
Exception Name: NS_ERROR_FAILURE
Exception Message: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE)
[mozIStorageConnection.createStatement]
personne ne sait comment je peux corriger cette erreur?
OriginalL'auteur Chris Bennett | 2013-01-09
Vous devez vous connecter pour publier un commentaire.
Découvrez la la documentation, il va vous montrer que si vous spécifiez une clé étrangère sur la définition du champ lui-même, vous ne devriez pas utiliser le mot-clé
FOREIGN KEY
lui-même. Aussi, vous avez utilisé trop de virgules, comme l'a souligné CL., et même lors de la spécification de la contrainte séparément, le nom de clé étrangère ne doit pas être entre parenthèses.Cette déclaration fait ce que vous voulez:
À noter également que, si MODULEID est la clé primaire de la table des MODULES, puis vous n'avez pas à spécifier, à proprement parler, SQLite ne l'exige pas. Cela étant dit, je préfère le préciser comme cela, car d'autres moteurs SQL ne l'attend plus.
OriginalL'auteur Martijn
Vous avez trop de virgules.
Les attributs de colonne ne sont pas séparés par des virgules; utiliser seulement entre les colonnes de la table:
...et enfin, lors de la définition d'une clé étrangère en ligne, vous devez omettre le
FOREIGN KEY constraint-name
partie, et il suffit de spécifierREFERENCES table(field)
.OriginalL'auteur CL.
vous avez une faute de frappe erreur de déclarer la
foreign key
devrait être
OriginalL'auteur John Woo