gpt4 book ai didi

sql - 在 SQLite 中如何实现多对多关系

转载 作者:IT王子 更新时间:2023-10-29 06:30:58 29 4
gpt4 key购买 nike

我正在制作一个具有多对多关系的 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 引擎确实期望它。

关于sql - 在 SQLite 中如何实现多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14227468/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com