将数据添加到主键

时间:2017-12-26 14:12:50

标签: sql oracle key constraints

这是我的表。在这个表中我想添加一个主键列名“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      

2 个答案:

答案 0 :(得分:0)

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

  • 添加将成为主键的列
  • 更新专栏
  • 强制执行主键。

这样的事情:

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);

在12c中,Oracle添加了Identity列(如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

答案 1 :(得分:-1)