oracle数据库中如何将一个字段设置成不重复自动增加,如1,2……,依次增加,

oracle数据库中如何将一个字段设置成不重复自动增加,如1,2……,依次增加,,第1张

一 :创建序列

二:引用序列

例如:

SQL>create sequence t1_sequence increment by 1 start with 1

SQL>create table t1(id number)

SQL>insert into t1 values(t1_sequence.nextval)

SQL> insert into t1 values(t1_sequence.nextval)

SQL>select * from t1

ID

----------

1

2

比如你的序号字段名为 id,姓名字段名为 name,表明为table:

A方法

merge into table a

using(select rowid,rownum from talbe) b

on a.rowid=b.rowid

when matched then

update set a.id=b.rownum

这个东东大概是这样,没有环境没法试验。你试试应该可以的

B方法:

游标。大概就是下面的样子,好久没摸oracle了,没环境啊

……

cursor c_tmp is select rownum,id,name from table for update

open c_tmp for update

loop

fetch c_tmp into v_rownum,id,name

exit when c_tmp%notfound

end loop

update table set id=v_rownum WHERE CURRENT OF c_tmp

commit

…………

方法C:

可以应用rowid的意义,通过计算得到一个递增序列,这个有待试验。你也可以考虑,要是成功的话,应该是效率最高的。


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

原文地址: http://outofmemory.cn/bake/11626474.html

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

发表评论

登录后才能评论

评论列表(0条)

保存