【发布时间】:2019-01-08 09:44:09
【问题描述】:
我在 PL SQL Developer 中创建了一张表。
CREATE TABLE Patient_List
(
Patient_ID number NOT NULL,
Patient_Name varchar(50) NOT NULL,
Patient_Address varchar(100) NULL,
App_Date date NULL,
Descr varchar(50),
CONSTRAINT patient_pk PRIMARY KEY(Patient_ID)
);
我想自动增加 Patient_ID,我尝试更改表并修改 Patient_ID 列,但它显示错误“无效的 ALTER TABLE 选项”
ALTER TABLE Patient_List
MODIFY Patient_ID NUMBER NOT NULL GENERATED ALWAYS AS IDENTITY;
请帮忙,在此先感谢。
【问题讨论】:
-
您的 Oracle 版本是多少? (
SELECT version FROM PRODUCT_COMPONENT_VERSION where product like 'Oracle%';会告诉你) -
@a_horse_with_no_name 10.2.0.5.0
-
标识列是在 Oracle 12.1 中引入的(即使在那里您也无法将现有列更改为标识列 - 您只能修改现有标识列或添加新的标识列身份列)
-
@a_horse_with_no_name 哦,谢谢。
-
正如 a_horse_with_no_name 所说,除非您的版本是 12,否则您不能使用标识列。您可以创建一个
sequence并编写trigger以自动插入值或从您的代码访问序列并将其设置为值到Patient_ID。
标签: sql oracle oracle10g ddl identity-column