加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle SQL – 将主键添加到表

发布时间:2020-12-12 15:13:32 所属栏目:百科 来源:网络整理
导读:我有一些没有主键的列,并且要添加一个主键列. NAME Age-------------Peter 45Bob 25John 56Peter 45 一些同事建议添加一个具有序列和触发器的PK: Add a auto increment primary key to existing table in oracle 这很好,但我的客户使用数据库用户没有权限添
我有一些没有主键的列,并且要添加一个主键列.
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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读