当前位置: 代码迷 >> Oracle开发 >> 怎么在事务中获取新增的ID
  详细解决方案

怎么在事务中获取新增的ID

热度:42   发布时间:2016-04-24 07:32:06.0
如何在事务中获取新增的ID
开发中使用事务插入了一条数据
主键是使用序列来自增的....

我想知道,还未Commit和Rollback的情况下,怎么去获取到这个主键的ID

例如:
tb表:
id(seq自增的) number
name nvarchar2

insert into tb(name) values('name')

使用事务插入之后.就算未有提交,也应该会有一个id与之数据对应的.我现在想拿到这个id

------解决方案--------------------
当没有提交,表中该记录没有写到数据文件中。
select seq.next into id from dual 只能是取序列的下一个值
------解决方案--------------------
先执行NEXTVAL,然后就可以执行CURRVAL获取刚才插入的值:
insert into tb(id,name) values(seq.nextval,'name');

select seq.currval from dual


------解决方案--------------------
insert ... values() returning id into 变量;
  相关解决方案