sqlite3 – 在执行SQLite alter table技巧时更新外键引用
发布时间:2020-12-12 23:40:35 所属栏目:百科 来源:网络整理
导读:在SQLite FAQ [1]中,提到SQLite没有完整的ALTER TABLE支持.在上一个关于StackOverflow [2]的问题中,提到了一种技巧来完成表修改. 我想知道的是如何保留FOREIGN KEY引用,因为它们被移动到随后被删除的重命名表中.我应该对每个与我正在修改的实际表具有外键关
在SQLite FAQ [1]中,提到SQLite没有完整的ALTER TABLE支持.在上一个关于StackOverflow [2]的问题中,提到了一种技巧来完成表修改.
我想知道的是如何保留FOREIGN KEY引用,因为它们被移动到随后被删除的重命名表中.我应该对每个与我正在修改的实际表具有外键关系的表执行相同的操作吗? [1] http://www.sqlite.org/lang_altertable.html [2] How do I rename a column in a SQLite database table? 是的,你需要做同样的“技巧”.重命名引用的表时,外键约束仍然以其新名称引用它.由于SQLite不支持“DROP CONSTRAINT”,因此您还必须使用更正的外键约束来重建引用表.实际上,在更正外键引用之前,您将无法删除旧表.只要PRAGMA foreign_keys = ON;,SQLite3就不会让你删除仍有外键引用它的表. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |