【问题标题】:Are this foreign key instances the same?这个外键实例是否相同?
【发布时间】:2020-03-19 20:20:01
【问题描述】:

这两个选项在表上声明外键有什么区别吗?

选项 1

create table Table1 (

    name varchar(255),
    id_fkey int references Table2 (id)
);

选项 2

create table Table1 (

    name varchar(255),
    id_fkey int,
    foreign key (id_fkey) references Table2 (id)
);

两个声明都是正确的foreign key 还是它们有什么区别?

【问题讨论】:

  • 它们是一样的。 (但我也会指定约束名称,例如constraint fk_table2 foreign key (id_fkey) references Table2 (id)。)
  • 仅供参考:MySQL 不支持声明为列约束的外键。你不会得到错误,但 MySQL 不会保存约束。

标签: mysql sql postgresql foreign-keys


【解决方案1】:

这是做同一件事的两种方法。第一种语法称为列约束,第二个语法称为表约束

唯一真正的区别是多列上的外键只能写为表约束。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 2015-01-13
    • 2011-12-24
    • 1970-01-01
    相关资源
    最近更新 更多