日期:2014-05-17  浏览次数:21001 次

如何在事务中获取新增的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 变量;