oracle 将数据添加到主键[重复]

klsxnrf1  于 2023-10-16  发布在  Oracle
关注(0)|答案(2)|浏览(113)

此问题已在此处有答案

Oracle SQL - Add Primary Key to table(2个答案)
五年前就关门了。
这是我的表。在这个表中,我想添加一个主键列名称“emp_id”作为第一列。我不知道如何做到这一点。所以,请你帮助我!

EMP_NAME             EMP_POS            SALARY           GENDER 
----------------- ----------------- --------------      ------ 
anand              worker             10000                 M      
balu               manager            50000                 M      
carl               manager            50000                 M      
riya               md                 60000                 F      
prabhu             owner              99999999              M
fnvucqvd

fnvucqvd1#

旧的方法是一个多步骤的过程:

  • 添加将作为主键的列
  • 更新该列
  • 强制执行主键。

大概是这样的:

create sequence t23_id;

alter table t23 add id number;

update t23 
set id = t23_id.nextval
;
     
alter table t23 add constraint t23_pk primary key (id);

在12 c中,Oracle添加了标识列(类似于SQL Server自动递增列)。这将步骤的数量减少到两个:

alter table t23i add id number GENERATED ALWAYS AS IDENTITY primary key;

alter table t23i add constraint t23i_pk primary key (id);

不幸的是,这不能一步到位。这个...

alter table t23i add id number GENERATED ALWAYS AS IDENTITY primary key;

...
ORA-01758:表必须为空才能添加强制(NOT NULL)列
Livesql demo

相关问题