android sqlite删除记录被排列为外键与另一条记录

时间:2014-03-05 10:54:45

标签: android sql sqlite sql-delete

我的sqlite android数据库中有以下表格:

CREATE TABLE MAIN (
_ID INTEGER PRIMARY KEY ASC AUTOINCREMENT,
NAME TEXT,
.....
CURRENT_CARD INTEGER
FOREIGN KEY (CURRENT_CARD) REFERENCES CARD (_ID));

CREATE TABLE CARD (
_ID INTEGER PRIMARY KEY ASC AUTOINCREMENT,
.....

现在我想以下列方式从我的CARD表中删除记录:

DELETE FROM CARD WHERE _ID IN (10,11,12,...);

一切正常,直到我将Card表中的记录链接到Main表,例如。让我们承认ID为11的卡在主表中有相应的记录。当删除卡11时,我想为记录ex设置相应的CURRENT_CARD字段。 MAIN中的1为null(我不想删除MAIN中的整个记录​​,只是为了使一列无效)。

如何以最简单的方式做到这一点?如果可能的话,作为一个sql语句......

1 个答案:

答案 0 :(得分:1)

ON DELETE SET NULL actionFOREIGN KEY一起使用。

请记住使用pragma foreign_keys='ON'启用外键支持。