gpt4 book ai didi

sql - Oracle SQL - 将主键添加到表

转载 作者:行者123 更新时间:2023-12-04 01:32:05 25 4
gpt4 key购买 nike

我有一些没有主键的列和 想添加主键列 .

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 步:后记:主键由我的应用程序管理和添加。

这将是结果:
ID(PK)  NAME    Age
---------------------
1 Peter 45
2 Bob 25
3 John 56
4 Peter 45

谢谢各位!

最佳答案

Update person set id = rownum;

关于sql - Oracle SQL - 将主键添加到表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19807314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com