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

在Oracle现有表中添加自增列时遇ORA-01735错误求助

你用的是Oracle数据库,但写了MySQL专属的AUTO_INCREMENT语法,这就是触发ORA-01735错误的原因。Oracle实现自增列的逻辑和MySQL不同,分两种场景给你解决方案:

方案一:Oracle 12c及以上版本(推荐)

Oracle 12c开始支持原生自增列,用GENERATED AS IDENTITY替代AUTO_INCREMENT,执行以下SQL即可:

ALTER TABLE NCS.generic_usg_data_store_dum 
ADD id NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY;

如果需要允许手动插入自定义ID值,可把ALWAYS替换为BY DEFAULT:

ALTER TABLE NCS.generic_usg_data_store_dum 
ADD id NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY;

方案二:Oracle 11g及以下版本

低版本Oracle需要通过「序列+触发器」组合实现自增:

  1. 先创建序列:
CREATE SEQUENCE seq_generic_usg_data_store_dum
START WITH 1
INCREMENT BY 1
NOCACHE
NOCYCLE;
  1. 再创建触发器,插入数据时自动给ID列赋值:
CREATE OR REPLACE TRIGGER trg_generic_usg_data_store_dum_id
BEFORE INSERT ON NCS.generic_usg_data_store_dum
FOR EACH ROW
BEGIN
  :NEW.id := seq_generic_usg_data_store_dum.NEXTVAL;
END;
/
  1. 最后给表添加ID列:
ALTER TABLE NCS.generic_usg_data_store_dum 
ADD id NUMBER PRIMARY KEY;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:28:12