SQLite如何从其他表中删除所有连接的行?

时间:2013-01-17 16:59:10

标签: sqlite

我有以下问题。我有三个表,TABLE_1,TABLE_2和TABLE_3。

在TABLE_1和TABLE_2之间是一个m:n关系,所以这是一个连接表 我们称之为TABLE_1_2。

在TABLE_2和TABLE_3之间是一个m:n关系,所以这是一个连接表 我们称之为TABLE_2_3。

如果我现在从TABLE_1删除一行,我希望其他表连接的所有行也将被删除。 我怎么处理这个?我读到sqlite不支持删除语句的连接。

1 个答案:

答案 0 :(得分:0)

在MS SQL中,可以通过在此列上添加ON DELETE CASCADE CONSTRAINT来更改table1和相应的列来完成此操作。但是在SQLite中没有ALTER COLUMN,ALTER TABLE的功能也比MS SQL少得多。这就是为什么你可能不得不

  • 将table1重命名为table3
  • 使用ON DELETE CASCADE CONSTRAINT和您已使用的所有其他约束创建一个新表。
  • 将旧表的内容复制到新表。
  • 删除旧表

另请参阅similar topic