gpt4 book ai didi

sql - 使用 REFERENCES 时,PostgreSQL 中可以省略 FOREIGN KEY 吗?

转载 作者:行者123 更新时间:2023-12-02 00:07:48 24 4
gpt4 key购买 nike

我想知道这两个 SQL 语句之间是否存在任何(可能是细微的)差异:

CREATE TABLE profiles (
profile_id SERIAL PRIMARY KEY NOT NULL,
bio TEXT,
user_id INTEGER NOT NULL,
FOREIGN KEY (user_id) REFERENCES users(user_id)
);

CREATE TABLE profiles (
profile_id SERIAL PRIMARY KEY NOT NULL,
bio TEXT,
user_id INTEGER NOT NULL REFERENCES users(user_id)
);

我注意到当我用第一个符号在 Postico 中创建一个表时,但稍后查看创建的 profiles 表的 DDL,FOREIGN KEY 是删除,我最终得到更短的第二个符号。

使用FOREIGN KEY创建表:

DDL View 不显示 FOREIGN KEY:

因此,我想知道(并寻求确认)这两个语句实际上是 100% 等效的,或者它们对数据库的操作是否存在一些细微差别。

任何指向官方资源的指针(以及它与 MySQL 的不同之处)将不胜感激。

最佳答案

您展示的两个示例做同样的事情,只是语法不同。

第一个方法称为表约束,第二个列约束,但后一个名称有些误导,因为约束也在表上。

主要区别在于列约束语法更短,但不能用于所有约束:例如,如果您有一个包含两列的主键,则必须将其写在表约束语法中。

关于sql - 使用 REFERENCES 时,PostgreSQL 中可以省略 FOREIGN KEY 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60090889/

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