Zaf*_*fer 3 postgresql primary-key identity-column
不确定哪个选项是最新的最佳实践?我继续阅读本教程:
https://www.postgresqltutorial.com/postgresql-identity-column/
PostgreSQL 版本 10 引入了一个新的约束 GENERATED AS IDENTITY,它允许您自动为列分配一个唯一的数字。
GENERATED AS IDENTITY 约束是旧的SERIAL 列的符合SQL 标准的变体。
在示例中,他们使用身份作为主键:
CREATE TABLE color (
color_id INT GENERATED ALWAYS AS IDENTITY,
color_name VARCHAR NOT NULL
);
Run Code Online (Sandbox Code Playgroud)
当您按照以下方式引用此表以获取外键时:
CREATE TABLE pallet (
id INT GENERATED ALWAYS AS IDENTITY,
color_1 REFERENCES color
color_2 REFERENCES color
);
Run Code Online (Sandbox Code Playgroud)
它现在会知道身份是主键吗?:
它现在会知道身份是主键吗?
不(也不serial会这样做)。
您需要明确定义主键:
CREATE TABLE color (
color_id INT primary key GENERATED ALWAYS AS IDENTITY,
color_name VARCHAR NOT NULL
);
Run Code Online (Sandbox Code Playgroud)
不确定哪个选项是最新的最佳实践?
建议使用identity而不是serial.
对于新应用程序,应改用标识列。
为什么不是连续剧?
串行类型有一些奇怪的行为,使模式、依赖项和权限管理变得不必要地麻烦。
最后,标识列符合 SQL 标准,而serialPostgreSQL 方言。
| 归档时间: |
|
| 查看次数: |
988 次 |
| 最近记录: |