Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sqlite 如果从父表中删除行,如何从子表中删除行?_Sqlite - Fatal编程技术网

Sqlite 如果从父表中删除行,如何从子表中删除行?

Sqlite 如果从父表中删除行,如何从子表中删除行?,sqlite,Sqlite,下面是一个简单的shema: sqlite> .schema recordtypes CREATE TABLE recordtypes (record_id text primary key); sqlite> .schema headers CREATE TABLE headers (header_id text primary key); sqlite> .schema record_to_headers CREATE TABLE record_to_headers (id

下面是一个简单的shema:

sqlite> .schema recordtypes
CREATE TABLE recordtypes (record_id text primary key);
sqlite> .schema headers
CREATE TABLE headers (header_id text primary key);
sqlite> .schema record_to_headers
CREATE TABLE record_to_headers (id INTEGER, recordid TEXT, headerid TEXT, FOREIGN KEY(recordid) REFERENCES recordtypes(record_id), FOREIGN KEY(headerid) REFERENCES headers(header_id));
然后我将值插入
记录类型
,然后在
记录到头中

sqlite> insert into recordtypes values("test");
sqlite> insert into record_to_headers values (1, "test", "yeah");
然后我从
recordtypes
表中删除“test”,希望它也从
record\u to\u headers
表中删除,但这种情况从未发生:

sqlite> delete from recordtypes where record_id = "test";
sqlite> select * from recordtypes;
sqlite> select * from record_to_headers;
1|test|yeah

如果我从
recordtypes
表中删除该值,我需要行为,它也会从
record\u to\u header
表中删除。请建议如何这样做。非常感谢。

在SQLLite方面没有太多经验,但是从我可以看到,SQLLite支持外键级联。当删除父行时,将删除子行:

FOREIGN KEY(headerid) REFERENCES headers(header_id) ON DELETE CASCADE

您应该查阅文档,查看是否需要在SQLLite中预先配置某些内容。

创建一个on delete触发器。看见