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

Oracle SQL添加自增列报错‘Missing Keyword’原因咨询

Oracle添加IDENTITY列报"Missing Keyword"的原因及解决方法

报错原因

你执行的ALTER TABLE语句存在语法顺序错误,Oracle对IDENTITY列的语法格式有严格要求:

  • GENERATED ALWAYS AS IDENTITY是列的身份属性,必须紧跟在数据类型之后,不能将NOT NULL放在IDENTITY子句的末尾。
  • 另外,Oracle的IDENTITY列默认自带NOT NULL约束,不需要显式指定,额外添加且位置错误会导致解析失败,触发"Missing Keyword"报错。

正确的语句写法

你可以直接使用以下语句添加自增列:

ALTER TABLE emp1 ADD ssn INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 0 INCREMENT BY 1);

如果确实需要显式声明NOT NULL(虽然没必要),需将其放在数据类型之后、IDENTITY属性之前:

ALTER TABLE emp1 ADD ssn INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 0 INCREMENT BY 1);

额外注意

IDENTITY列是Oracle 12c及以上版本才支持的特性,如果你使用的是12c之前的版本,这个语法本身就不支持,需要改用序列+触发器的方式实现自增。

内容的提问来源于stack exchange,提问作者k201676 Ahmed Hamza Khaliq

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 14:40:37