oracle uid函数有什么用

oracle uid函数有什么用,第1张

UID只是数据库的一个记录号,每个数据库的记录号不一样,类似于ROWID、ROWNUM。

SELECT duusername, duuser_id

FROM dba_users du

11

因为序列是所有对象共同使用的

使用序列优点是可以自动生成,不会出现重复,

遗憾的就是多个会出现 id不续的情况

因为只要用到了sequencenextval就会把 序列的当前值加1

伪列的数据是由ORACLE进行维护和管理的,用户不能对这个列修改,只能查看。

所有的伪列要得到值必须要显式的指定。

最常用的两个伪列:rownum和rowid。

1、

ROWNUM(行号):是在查询 *** 作时由ORACLE为每一行记录自动生成的一个编号。

每一次查询ROWNUM都会重新生成。(查询的结果中Oracle给你增加的一个编号,根据结果来重新生成)

rownum永远按照默认的顺序生成。(不受order by的影响)

rownum只能使用 <、 <= ,不能使用 > 、>= 符号,原因是:Oracle是基于行的数据库,行号永远是从1开始,即必须有第一行,才有第二行。

2、

ROWID(记录编号):是表的伪列,是用来唯一标识表中的一条记录,并且间接给出了表行的物理位置,定位表行最快的方式。

主键:标识唯一的一条业务数据的标识。主键是给业务给用户用的。不是给数据库用的。

记录编号rowid:标识唯一的一条数据的。主要是给数据库用的。类似UUID。

一、主键id自增

oracle 中不能设置自动增加,这个和其他数据库不一样,但是有 序列,这个是Oracle自己特有的东西,

1、首先创建序列:create sequence seq;

语法:

CREATE SEQUENCE 序列名

[INCREMENT BY n] --每次加几

[START WITH n] --序列从几开始

[{MAXVALUE/ MINVALUE n|NOMAXVALUE}] --小值、大值限制

比CREATE SEQUENCE seq start with 1 increment by 1; --建立了额从1开始每次加1序列

访问序列时用 序列名称nextval语法

这就创建好了,然后 seqnextval 就会返回一个值,不会重复的值,

insert into tablename values(seqnextval,'test');

insert into tablename values(seqnextval,'test');

insert into tablename values(seqnextval,'test');

这样前3个id 分别是 1,2,3

二、自动生成UUID策略

import javautilUUID;

Student s = new Student();

ssetId(UUIDrandomUUID()toString());

有点类似JAVA用的UUID,你说的是Uniqueidentifier这个数据类型吧?其实他是对一列数据的描述,这列数据可以把表中数据设定具有唯一性,oracle中建议你使用MD5码这样的,你可以把数据都拿过来放到16个字节字段里面

以上就是关于oracle uid函数有什么用全部的内容,包括:oracle uid函数有什么用、oracle多个表共用一个序列生成Id的问题、在ORACLE数据库中什么叫伪列等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9459914.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存