如何解决Sqlite:column_id REFERENCES parent(id) VS 外键(column_id) REFERENCES parent(id)
我对 sqlITE 中的 FOREIGN KEYS 有一些疑问,因为有 2 个语法选项。
假设我们已经有了父表
CREATE TABLE parent (id,some_text)
我们可以使用两种方式创建带有外键的子表:
- CREATE TABLE child(id,some_child_data,parent_id REFERENCES parent(id))
- CREATE TABLE child(id,parent_id,FOREIGN KEY(parent_id) REFERENCES parent(id))
我的问题是:
解决方法
完全一样的东西。您可以使用列定义或在表创建结束时定义外键。结果是一样的。
但正如@Mike T 提到的:
两者之间的区别在于您仅限于单个 使用列定义时的列外键,在表中 定义级别,您可以拥有复合外键。
您可以在两种语法中使用 on update/ on delete 。
DB-小提琴:
父表:
CREATE TABLE parent (id int,some_text varchar(50));
智利表:
CREATE TABLE child(id,some_child_data,parent_id REFERENCES parent(id) ON UPDATE CASCADE);
或
CREATE TABLE child(id,parent_id,FOREIGN KEY(parent_id) REFERENCES parent(id))
db
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。