Sqlite 如果从父表中删除行,如何从子表中删除行?
下面是一个简单的shema: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
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触发器。看见