You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL添加自增主键列提示IDENTITY附近语法错误如何解决?

报错原因

  • IDENTITY(1,1)是SQL Server等支持T-SQL语法的数据库专属的自增列定义语法,你当前使用的是PostgreSQL数据库,该数据库不兼容这类T-SQL写法,因此触发语法报错。
  • 补充说明:PostgreSQL 10及以上版本虽支持IDENTITY类型的自增列,但语法规则和T-SQL存在差异;10以下的旧版本PostgreSQL完全不支持IDENTITY属性,也会抛出同类报错。

解决方案

根据你使用的PostgreSQL版本选择对应写法即可,两种写法都自动满足自增、唯一、非空、主键的要求,主键本身自带唯一、非空约束,无需额外声明冗余属性。

方案1:PostgreSQL 10及以上版本(推荐标准写法)

ALTER TABLE cities
    ADD city_id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY;

方案2:PostgreSQL 10以下旧版本

使用PostgreSQL专属的自增封装类型SERIAL即可,底层会自动创建关联的序列完成自增逻辑:

ALTER TABLE cities
    ADD city_id SERIAL PRIMARY KEY;

如果你的表中已经存在历史数据,执行上述语句会自动为所有已有行填充连续的自增数值,无需额外手动处理。


内容的提问来源于stack exchange,提问作者Tim4ios

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 09:54:06