如何在 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;
我在 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;