sql—在mysql中添加外键时是否需要指定约束名称?

yptwkmov  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(359)

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

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);

我想知道这两个问题之间有没有区别。

fd3cxomn

fd3cxomn1#

不需要为外键提供名称,如果不提供,则会为其指定一个自动生成的名称。话虽如此,这是一个很好的做法,将使您的维护工作更容易。

相关问题