在SQLITE ANDROID上删除CASCADE

时间:2014-02-28 14:39:41

标签: android sqlite cascading-deletes

我有3张桌子说A,B,C。表A具有主键列a1,它是表B的外键。表B具有主键b1并且是表C的外键。表C具有主键c1。我通过级联删除从表A中删除一行。它从表B中删除了相应的值,但没有在表C中删除。任何可以用示例解释我。

1 个答案:

答案 0 :(得分:0)

FOREIGN KEY约束必须用ON DELETE CASCADE标记:

> CREATE TABLE A(a1 PRIMARY KEY);
> CREATE TABLE B(b1 PRIMARY KEY, fa REFERENCES A(a1) ON DELETE CASCADE);
> CREATE TABLE C(c1 PRIMARY KEY, fb REFERENCES B(b1) ON DELETE CASCADE);
> INSERT INTO A VALUES (1);
> INSERT INTO B VALUES (2, 1);
> INSERT INTO C VALUES (3, 2);
> DELETE FROM A;
> SELECT COUNT(*) FROM C;
0