在我应用程序中,我创建了一个具有序列的列,使我添加的每个记录都具有唯一的id,我怀疑oracle本身是否会为我们在表中更新的每个记录创建任何唯一的行号,如果是,那么如何访问行号,如下所示
SELECT row-number from table where employee_name='name';这里我想获取由oracle创建的唯一行号,
我已经在网上搜索过了,但没有得到适当的信息
发布于 2015-02-02 20:10:49
Oracle确实为每一行维护了一个ROWID;然而,在我看来,在用户编写的代码中使用ROWID既是糟糕的做法,也是危险的。ROWID仅保证在单个事务的持续时间内保持不变。ROWID不能保证永远不变,数据库可以在确定需要更改时对其进行更改。如果您的数据没有提供唯一且不变的值或值的组合,我强烈建议您学习如何创建一个使用序列和触发器自动设置的人工键。我相信12c提供了自动增量列,如果您使用的是最新版本的Oracle,则可以使用这些列。
分享和享受。
发布于 2015-02-02 20:11:52
Oracle中有两个唯一的标识符,分别为ROWNUM和ROWID。您可以通过以下方式使用它们:
SELECT ROWNUM
FROM table
WHERE employee_name = 'name';和
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
https://stackoverflow.com/questions/28276807
复制相似问题