代码之家  ›  专栏  ›  技术社区  ›  simon

向现有Oracle数据库表添加代理项的首选方法

  •  8
  • simon  · 技术社区  · 16 年前

    我必须修改Oracle10gDB中现有的一个表,其中包含几千条记录,以添加一个代理自动编号键。我想到的一个办法是

    1. 创建新序列
    2. 创建ID列,允许空值
    3. 用序列更新id列
    4. 更改表以为新ID列添加“not null”和“primary key”

    有没有一种更简单或更有效的方法可以做到这一点(或者有什么理由不能做到这一点)?

    1 回复  |  直到 16 年前
        1
  •  8
  •   Quassnoi    16 年前

    我会这样做:

    1. 创建 id 列,允许空值

    2. 发出此查询:

      UPDATE  mytable
      SET     id = rownum
      
    3. 更改要添加的表 NOT NULL PRIMARY KEY 对于新ID列

    4. 创建序列,将其播种到 MAX(id) + 1 并将其用于进一步的插入。

    推荐文章