虚拟应用程序:我创建了一个包含20个表的sqlite数据库,并启用了外键功能("PRAGMA foreign_keys = ON"
)。此数据库通过Assests文件夹用于另一个应用程序,我的问题是不支持外键。 / p>
离。 CREATE TABLE Student(Studend_id Integer not null,student_name String, FOREIGN KEY ((Studend_id ) REFERENCES Dept(Deptid));
CREATE TABLE Dept(Deptid Integer not null,dept_name String)
部门表数据
Deptid dept_name
500 cse
400 ece
在虚拟应用程序中,我尝试在学生中添加列,它会抛出异常外键错误捣碎
insert into student(300,"sri");
同样的查询我尝试在我的应用程序中执行它不会抛出任何异常,并且此处添加了列,不支持外键。
答案 0 :(得分:1)
在您的情况下,学生表引用Dept表的deptid列。正如您所看到的,Dept表的deptid列没有值300。
Deptid dept_name
500 cse
400 ece
由于dept表中没有值300,因此无法插入新记录。您的学生表依赖于Dept表的值。如果你
Deptid dept_name
500 cse
400 ece
300 eee
然后它会起作用。我的意思是你不能在学生表中创建一个在Dept表中不存在的值。希望这会有所帮助。
答案 1 :(得分:0)
PRAGMA foreign_keys
仅适用于当前连接。
您无法为您无法控制的其他应用程序启用外键。