如何在 PL SQL Developer 中修改列以自动递增?

How to modify column to auto increment in PL SQL Developer?

我在 PL SQL 开发人员中创建了一个 table。

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,我尝试更改 table 并修改 Patient_ID 列,但显示错误 "invalid ALTER TABLE option"

ALTER TABLE Patient_List
MODIFY Patient_ID NUMBER NOT NULL GENERATED ALWAYS AS IDENTITY;

请帮忙,提前致谢。

这是不可能的。

Oracle 10g 甚至没有标识列,它们是在 Oracle 12.1 中引入的

但即使使用当前的 Oracle 版本,您也无法将常规列转换为标识列。您将需要添加一个新的。

在标识列之前,通常的方法是创建一个序列和一个触发器来填充该列。

看这里:How to create id with AUTO_INCREMENT on Oracle?

如果有人想将现有列修改为auto_increment,请使用这三行

alter table Product drop column test_id;

create sequence Product_test_id_seq INCREMENT BY 1 nocache;

alter table Product add test_id Number default Product_test_id_seq.nextval not null;