我有一些没有主键的列,并且要添加一个主键列.
NAME Age ------------- Peter 45 Bob 25 John 56 Peter 45
一些同事建议添加一个具有序列和触发器的PK:
Add a auto increment primary key to existing table in oracle
这很好,但我的客户使用数据库用户没有权限添加序列或触发器.
我想阻止联系数十名DBA管理员来更改用户权限或运行我的脚本.
这是我的建议,只添加一个更新语句的PK:(我需要在步骤2中的帮助)
步骤1:创建ID列(我有DB权限)
ALTER TABLE PERSON ADD ID NUMBER(10,0);
步骤2:问题:可以根据行的顺序或其他内容使用唯一的值初始化ID列吗?怎么样?
UPDATE PERSON SET ID = something-unique
步骤3:添加主键的约束后:(我DB有权限为此)
ALTER TABLE PERSON ADD CONSTRAINT PK_ID PRIMARY KEY(ID);
步骤4:Afterwords:主键由我的应用程序管理和添加.
这将是结果:
ID(PK) NAME Age --------------------- 1 Peter 45 2 Bob 25 3 John 56 4 Peter 45
谢谢你们
Update person set id = rownum;
原文地址:https://www.jb51.cc/oracle/204956.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。