我已经研究了如何使用SQLite下降一列。由于缺乏一个DROP COLUMN语句中,我使用了以下解决方法考虑:SQLite的删除列和级联删除
Delete column from SQLite table
这涉及到所有的数据移动到临时表,删除原,然后重新创建它。
如果我有一个级联删除我想修改表的依赖,我怎么可以防止数据丢失任何相关的表?
Ex。
CREATE TABLE A (
id INTEGER PRIMARY KEY,
name TEXT,
dummy INTEGER
)
CREATE TABLE B (
id INTEGER PRIMARY KEY,
name TEXT,
a_id INTEGER,
FOREIGN KEY (a_id) REFERENCES A(id) ON DELETE CASCADE
)
比方说,我想从表A中删除列“虚拟”的,但我不想影响表B.任何行可以这样做?
感谢您的快速回复。虽然我没有特别删除一行,但我正在删除然后重新创建A(由于SQLite缺少DROP COLUMN功能),但是这不会影响B? –
如果您要删除表格,那么您将删除将驱动级联删除的记录。在删除并重新创建表A之前,您需要将表B中的数据复制到新的备份表中。然后,您需要将数据复制回表B. –