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

如何创建起始值为0的自增列?解决IDENTITY语句起始值报错问题

解决IDENTITY列起始值为0的报错问题

这个坑我之前踩过!你遇到的报错是因为大多数数据库的IDENTITY列默认MINVALUE(最小值)是1,而你指定了START WITH 0,0比默认的MINVALUE小,所以数据库直接拒绝执行了。

正确的实现方法

只需要在IDENTITY的定义里显式加上MINVALUE 0,告诉数据库允许的最小值是0就行,修正后的SQL语句如下:

CREATE TABLE security (
    SID INTEGER GENERATED BY DEFAULT AS IDENTITY (
        START WITH 0 
        INCREMENT BY 2
        MINVALUE 0  -- 必须显式设置最小值为0
    )
);

额外说明

  • 如果你用的是SQL Server,其实更简单,直接用IDENTITY(0, 2)语法即可,它会自动把MINVALUE设为0:
    CREATE TABLE security (
        SID INTEGER IDENTITY(0, 2)
    );
    
  • 测试验证:插入几条数据后,你会看到SID的值依次是0、2、4...完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 08:53:10