到目前为止,我已经像这样手动创建了表格,并且没有任何问题。
CREATE TABLE users (
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
email VARCHAR(100) NOT NULL,
cityId BIGINT(20) UNSIGNED NULL DEFAULT NULL,
PRIMARY KEY (id),
FOREIGN KEY (cityId)
REFERENCES cities (id));
现在,我使用 MySQL Workbench 为我生成 SQL 脚本,并且 SQL 脚本看起来有点不同。
CREATE TABLE users (
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
email VARCHAR(100) NOT NULL,
cityId BIGINT(20) UNSIGNED NULL DEFAULT NULL,
PRIMARY KEY (id),
CONSTRAINT cityId
FOREIGN KEY (cityId)
REFERENCES locations (id)
ON DELETE NO ACTION
ON UPDATE NO ACTION);
我想知道这两个查询之间是否有任何区别。
最佳答案
您不需要提供外键的名称,如果您不这样做,系统将为其分配一个自动生成的名称。话虽如此,这是一个很好的做法,并且会让您的维护工作变得更加轻松。
关于mysql - MySQL添加外键时是否需要指定约束名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62941964/