现有数据库不支持外键

时间:2013-04-03 07:15:44

标签: android sqlite

虚拟应用程序:我创建了一个包含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");

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

2 个答案:

答案 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仅适用于当前连接。

您无法为您无法控制的其他应用程序启用外键。

相关问题