要修改的列不是标识列

问题描述 投票:10回答:2

我创建了一个带有列S_ROLL NUMBER(3) NOT NULL的表,现在我想将此列作为标识列。我用了这个命令

alter table students
modify
(
S_ROLL NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY
);

然后我遇到此错误。

S_ROLL NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY
*
ERROR at line 4:
ORA-30673: column to be modified is not an identity column
oracle identity-column
2个回答
17
投票

您收到此错误的原因仅仅是因为现在不支持将现有列修改为IDENTITY列。

解决方案是添加一个新列,然后删除现有的列(确保您也照看数据)。


0
投票

不支持修改现有列以标识列。因此,您可以使用下面的查询来添加新列。

ALTER TABLE students ADD (S_ROLL_NEW NUMBER(3) GENERATED ALWAYS AS IDENTITY);
© www.soinside.com 2019 - 2024. All rights reserved.