1

虚拟应用程序:我创建了一个包含 20 个表的 sqlite 数据库并启用了外键功能("PRAGMA foreign_keys = ON")。该数据库通过 Assests 文件夹用于另一个应用程序,我的问题是不支持外键。

前任。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");

我尝试在我的应用程序中执行的相同查询它不会引发任何异常,并且在此处添加列不支持外键。

4

2 回答 2

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

那么它会起作用的。我的意思是你不能在学生表中创建一个不存在于部门表中的值。希望这可以帮助。

于 2013-04-03T07:20:30.483 回答
0

PRAGMA foreign_keys仅适用于当前连接。

您不能为不受您控制的其他应用程序启用外键。

于 2013-04-03T09:48:57.780 回答