微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sqlite3 – 在执行SQLite alter table技巧时更新外键引用

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就不会让你删除仍有外键引用它的表.

原文地址:https://www.jb51.cc/sqlite/238906.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐