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



假设我们有两个表,pracprac2

prac:的CREATE TABLE语句

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

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

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

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-当使用列引用时,既不创建索引也不创建约束/外键。

最新更新