我必须使用几千条记录修改Oracle 10g数据库中的现有表,以添加代理自动编号密钥.我想到的一种方法是
>创建一个新序列
>创建id列,允许空值
>使用序列更新id列
>更改表以为新id列添加“not null”和“primary key”
有没有更容易或更有效的方法来做到这一点(或者有什么理由说这不起作用)?
我会用以下方式做到:
>创建id列,允许空值
>发出此查询:
UPDATE mytable SET id = rownum
>更改表以为新id列添加NOT NULL和PRIMARY KEY>创建序列,将其播种到MAX(id)1并将其用于进一步插入.