我的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语句......
答案 0 :(得分:1)
将ON DELETE SET NULL
action与FOREIGN KEY
一起使用。
请记住使用pragma foreign_keys='ON'
启用外键支持。