代码之家  ›  专栏  ›  技术社区  ›  Shreyas Pednekar

如何在PL SQL Developer中将列修改为自动增量?

  •  0
  • Shreyas Pednekar  · 技术社区  · 7 年前

    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 option”

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

    请帮忙,提前谢谢。

    1 回复  |  直到 7 年前
        1
  •  3
  •   a_horse_with_no_name    7 年前

    这是不可能的。

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

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

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

        2
  •  0
  •   Saikumar Shinde    6 年前

    如果有人想将现有列修改为自动增量,请使用这三行

    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;
    
    推荐文章