首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle中的每条记录是否都有唯一的id

Oracle中的每条记录是否都有唯一的id
EN

Stack Overflow用户
提问于 2015-02-02 19:32:20
回答 2查看 1.3K关注 0票数 1

在我应用程序中,我创建了一个具有序列的列,使我添加的每个记录都具有唯一的id,我怀疑oracle本身是否会为我们在表中更新的每个记录创建任何唯一的行号,如果是,那么如何访问行号,如下所示

代码语言:javascript
复制
SELECT row-number from table where employee_name='name';

这里我想获取由oracle创建的唯一行号,

我已经在网上搜索过了,但没有得到适当的信息

EN

回答 2

Stack Overflow用户

发布于 2015-02-02 20:10:49

Oracle确实为每一行维护了一个ROWID;然而,在我看来,在用户编写的代码中使用ROWID既是糟糕的做法,也是危险的。ROWID仅保证在单个事务的持续时间内保持不变。ROWID不能保证永远不变,数据库可以在确定需要更改时对其进行更改。如果您的数据没有提供唯一且不变的值或值的组合,我强烈建议您学习如何创建一个使用序列和触发器自动设置的人工键。我相信12c提供了自动增量列,如果您使用的是最新版本的Oracle,则可以使用这些列。

分享和享受。

票数 3
EN

Stack Overflow用户

发布于 2015-02-02 20:11:52

Oracle中有两个唯一的标识符,分别为ROWNUM和ROWID。您可以通过以下方式使用它们:

代码语言:javascript
复制
SELECT ROWNUM 
FROM table 
WHERE employee_name = 'name';

代码语言:javascript
复制
SELECT ROWID
FROM table 
WHERE employee_name = 'name';

您可以进一步阅读有关它们的信息。

随机数- http://docs.oracle.com/cd/B12037_01/server.101/b10759/pseudocolumns008.htm

Rowid - http://docs.oracle.com/cd/B19306_01/server.102/b14200/pseudocolumns008.htm

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28276807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档