Oracle SQL - 将主键添加到表

Dim*_*ele 11 sql oracle key add

我有一些没有主键的列,并且想要添加主键列.

NAME    Age
-------------
Peter   45
Bob     25
John    56
Peter   45
Run Code Online (Sandbox Code Playgroud)

一些同事建议添加带有序列和触发器的PK: 在oracle中向现有表添加自动增量主键

这很好,但我的客户使用数据库用户无权添加序列或触发器.我想阻止与数十名DBA管理员联系以更改用户权限或运行我的脚本.

这是我建议添加一个只有更新语句的PK :(我在步骤2中需要帮助)

第1步:创建ID列(我有此权限)

ALTER TABLE PERSON ADD ID NUMBER(10,0);
Run Code Online (Sandbox Code Playgroud)

第2步: 问题:我可以根据行的顺序或其他内容使用唯一值初始化ID列吗?怎么样?

UPDATE PERSON SET ID = something-unique
Run Code Online (Sandbox Code Playgroud)

第3步:在词语后添加主键约束:( 我有权使用此权限)

ALTER TABLE PERSON ADD CONSTRAINT PK_ID PRIMARY KEY(ID);
Run Code Online (Sandbox Code Playgroud)

第4步:后记:主键由我的应用程序管理和添加.

这将是结果:

ID(PK)  NAME    Age
---------------------
1       Peter   45
2       Bob     25
3       John    56
4       Peter   45
Run Code Online (Sandbox Code Playgroud)

谢谢大家!

WW.*_*WW. 26

Update person set id = rownum;
Run Code Online (Sandbox Code Playgroud)