标签: database oracle surrogate-key
我必须使用几千条记录修改Oracle 10g数据库中的现有表,以添加代理自动编号密钥。我想到的一种方法是
是否有更简单或更有效的方法(或者有什么理由说这不起作用)?
答案 0 :(得分:8)
我会按照以下方式进行:
创建id列,允许空值
id
发出此查询:
UPDATE mytable SET id = rownum
更改表格,为新的ID列添加NOT NULL和PRIMARY KEY
NOT NULL
PRIMARY KEY
创建序列,将其播种到MAX(id) + 1并将其用于进一步插入。
MAX(id) + 1