在SQLite中如何实现多对多的关系

前端之家收集整理的这篇文章主要介绍了在SQLite中如何实现多对多的关系前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_301_2@
我正在创建一个具有多对多关系的sqlite数据库,我将其分解为两个一对多关系,并使用以下代码

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)
)

错误

[near ""STUDENTID"": Syntax error ]
Exception Name: NS_ERROR_FAILURE
Exception Message: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE)
[mozIStorageConnection.createStatement]

有谁知道如何解决这个错误

解决方法

查看 documentation;它会告诉你,如果在字段定义本身上指定了外键,则不应使用关键字FOREIGN KEY本身.此外,您使用了过多的逗号,如CL所指出的那样,即使单独指定约束,外键名也不应该在括号中.

这句话做你想要的:

CREATE TABLE "LESSONS"
(
    "LESSONID"  INTEGER PRIMARY KEY NOT NULL,"MODULEID"  INTEGER REFERENCES MODULES(MODULEID),"STUDENTID" INTEGER REFERENCES STUDENTS(STUDENTID)
);

另请注意,如果MODULEID是表MODULES的主键,那么您不必自己指定它; sqlite不需要它.话虽如此,我更喜欢像这样指定它,因为其他sql引擎确实期望它.

@H_301_2@

猜你在找的Sqlite相关文章