在SQLite中如何实现多对多的关系
发布时间:2020-12-12 18:59:06 所属栏目:百科 来源:网络整理
导读:我正在创建一个具有多对多关系的SQLite数据库,我将其分解为两个一对多关系,并使用以下代码 SQLiteManager: CREATE TABLE "main"."LESSONS" ( "LESSONID" INTEGER PRIMARY KEY NOT NULL,"MODULEID" INTEGER,FOREIGN KEY(MODULEID) REFERENCES MODULES (MODULE
我正在创建一个具有多对多关系的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引擎确实期望它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |