首页 > 数据库 > mysql教程 > PostgreSQL中如何正确实现自增主键?

PostgreSQL中如何正确实现自增主键?

Susan Sarandon
发布: 2025-01-22 11:41:10
原创
684 人浏览过

How Do I Properly Implement Auto-Incrementing Primary Keys in PostgreSQL?

PostgreSQL 自动递增列疑难解答

在尝试使用 AUTO_INCREMENT 自动为 PostgreSQL 中的主键编号时,可能会遇到错误。让我们深入探讨可能的原因及其解决方案:

PostgreSQL 10 及更高版本

在 PostgreSQL 10 及更高版本中,建议使用标准 SQL 的 IDENTITY 列代替 AUTO_INCREMENT。

创建带有 IDENTITY 列的表

<code class="language-sql">CREATE TABLE staff (  
 staff_id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY  
, staff text NOT NULL  
);</code>
登录后复制

向现有表添加 IDENTITY 列

<code class="language-sql">ALTER TABLE staff ADD COLUMN staff_id int GENERATED ALWAYS AS IDENTITY;</code>
登录后复制

将其也设为主键:

<code class="language-sql">ALTER TABLE staff ADD COLUMN staff_id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY;</code>
登录后复制

PostgreSQL 9.6 或更低版本

对于 9.6 或更低版本,请使用 serial 伪数据类型:

<code class="language-sql">CREATE TABLE staff (  
 staff_id serial PRIMARY KEY  
, staff text NOT NULL  
);</code>
登录后复制

附加说明

请确保使用有效的标识符(小写,不加引号),以防止潜在问题。

如果要将 serial 列替换为 IDENTITY 列,请参考此文档以获取指导。

可以使用 OVERRIDING {SYSTEM|USER} VALUE 来覆盖 INSERT 命令中的系统值或用户输入。

以上是PostgreSQL中如何正确实现自增主键?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板