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

外键约束和引用列有什么区别?

如何解决外键约束和引用列有什么区别?

假设我们有两个表,pracprac2

prac 的 CREATE TABLE 语句:

CREATE TABLE prac (
    id int PRIMARY KEY,name varchar(44),area varchar(44)
);

我将在 sid 中有一个名为 prac2 的列,它将是一个外键,它将引用的列是 id 中的 prac。>

在这种情况下添加外键的一般方法是这样的:

CREATE TABLE prac2 (
    adm_id int PRIMARY KEY,sid int,fee_status varchar(20),FOREIGN KEY (sid) REFERENCES prac(id)
);

我想到了一种不同的方法来执行此操作并执行此查询

CREATE TABLE prac2 (
    adm_id int PRIMARY KEY,sid int REFERENCES prac(id),fee_status varchar(20)
);

我以为查询会出错,但没有。

问题是这两个查询有什么区别?

解决方法

外键约束和引用列有什么区别?

区别很简单 - 列引用被解析但被忽略。

参见 fiddle - 当使用列引用时,既不创建索引也不创建约束/外键。

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