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

Sqlite:column_id REFERENCES parent(id) VS 外键(column_id) REFERENCES parent(id)

如何解决Sqlite:column_id REFERENCES parent(id) VS 外键(column_id) REFERENCES parent(id)

我对 sqlITE 中的 FOREIGN KEYS 有一些疑问,因为有 2 个语法选项。

假设我们已经有了父表

CREATE TABLE parent (id,some_text)

我们可以使用两种方式创建带有外键的子表:

  1. CREATE TABLE child(id,some_child_data,parent_id REFERENCES parent(id))
  2. CREATE TABLE child(id,parent_id,FOREIGN KEY(parent_id) REFERENCES parent(id))

我的问题是:

  1. 这两种语法有什么区别吗?
  2. 我可以使用这些语法选项中的任何一个来使用 ON UPDATE / ON DELETE 修改吗?

解决方法

完全一样的东西。您可以使用列定义或在表创建结束时定义外键。结果是一样的。

但正如@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))

dbhere

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