gpt4 book ai didi

mysql - 使用带外键和不带外键的 REFERENCES 之间的区别?

转载 作者:IT老高 更新时间:2023-10-29 00:07:37 25 4
gpt4 key购买 nike

基本上我想知道使用带或不带外键的 REFERENCES 之间的区别。

我有这两个例子:

CREATE TABLE Employee 
(
id INT,
name VARCHAR(50),
birthYear INT,
boss INT REFERENCES Employees(id),
worksAt INT NOT NULL REFERENCES Department(id) ON DELETE CASCADE,
PRIMARY KEY (id,worksAt)
);

示例 2:

CREATE TABLE Department 
(
id INT PRIMARY KEY,
name VARCHAR(50),
numberOfEmployees INT,
location INT NOT NULL,
country INT NOT NULL,
manager INT,
FOREIGN KEY (location,country) REFERENCES Location(locId,countryId),
UNIQUE KEY (manager)
);

我在这里要问的是为什么第二个示例使用 FOREIGN KEY 关键字,而第一个示例仅使用 REFERENCES。

另外,第一个似乎引用了自己(我认为Employees中的s是一个错误)如果是这样,为什么它引用自己时使用REFERENCES?

最佳答案

恭喜!您偶然发现了 MySQL 的一个奇怪的怪癖。第一种语法完全没有任何作用。 默默地,是的,默默地被忽略了。

Furthermore, InnoDB does not recognize or support “inline REFERENCES specifications” (as defined in the SQL standard) where the references are defined as part of the column specification. InnoDB accepts REFERENCES clauses only when specified as part of a separate FOREIGN KEY specification. For other storage engines, MySQL Server parses and ignores foreign key specifications.

它在 create table 的一半以下文档。

关于mysql - 使用带外键和不带外键的 REFERENCES 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14230892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com