【问题标题】:add data into primary key [duplicate]将数据添加到主键[重复]
【发布时间】:2018-06-07 08:48:21
【问题描述】:

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

【问题讨论】:

  • 提示:Alter 命令添加一列,然后使用 Rownum 更新以将数据填充到该列中。
  • 嘿,它只有在链接中创建表。但我需要将列添加到现有表中,它应该是主键。该怎么做?

标签: sql oracle key constraints


【解决方案1】:

【讨论】:

    【解决方案2】:

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

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

    类似这样的:

    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 添加了标识列(如 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

    【讨论】:

      猜你喜欢
      • 2016-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多