我已經研究瞭如何使用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. –