我必须修改Oracle10gDB中现有的一个表,其中包含几千条记录,以添加一个代理自动编号键。我想到的一个办法是
有没有一种更简单或更有效的方法可以做到这一点(或者有什么理由不能做到这一点)?
我会这样做:
创建 id 列,允许空值
id
发出此查询:
UPDATE mytable SET id = rownum
更改要添加的表 NOT NULL 和 PRIMARY KEY 对于新ID列
NOT NULL
PRIMARY KEY
创建序列,将其播种到 MAX(id) + 1 并将其用于进一步的插入。
MAX(id) + 1