Oracle中如何修改IDENTITY生成列为普通列(不删除列)
解决Oracle标识列取消自动生成的问题
你遇到的报错是因为GENERATED ALWAYS类型的标识列不允许直接修改为普通列,必须先移除其标识属性。可以通过以下SQL语句解决:
ALTER TABLE table_name MODIFY ID DROP IDENTITY;
执行这条语句后,ID列就不再是自动生成的标识列,变回普通的NUMBER类型,你可以手动插入或更新该列的值。
如果你的Oracle版本存在兼容性问题(注:Oracle 12c及以上版本支持DROP IDENTITY语法),可以分两步操作:
-- 先将生成规则改为允许手动插入值 ALTER TABLE table_name MODIFY ID GENERATED BY DEFAULT; -- 再修改为普通NUMBER列 ALTER TABLE table_name MODIFY ID NUMBER;
内容的提问来源于stack exchange,提问作者Farrukh Nabiyev
相关产品推荐
相关产品推荐

