mysql - MySQL添加外键时是否需要指定约束名称?

标签 mysql sql foreign-keys ddl

到目前为止,我已经像这样手动创建了表格,并且没有任何问题。

  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/

相关文章:

mysql - has_many 上的条件通过

php - 如何跟踪不同表中的 ID(主要)?

sql - 如何用数据备份一些表而一些表只用模式 PostgreSQL

mysql - 在别名连接字段中使用 WHERE 会出现 'unknown column' 错误

foreign-keys - 如何在starUML ER图中插入外键(FK)?

mysql - SQL Join 与代码聚合

php 语法错误 - 初学者

mysql - 数据库设计 : More Rows vs. 更多列?

c# - 在 C# 中控制 SQL 存储过程的多个输出

mysql - 在非主键之间创建外键关系时出错