数据库中怎么取回刚刚插入的记录?

05-10-03 windfromsky
表的插入操作比较频繁

ID由数据库自动生成,请问如何得到刚刚插入的这一条记录的ID?

table(

ID bigint not null primary key auto_increment,

event varchar(128) not null

)

插入一条

insert into tablename values ( '', 'error alert' );

想立即返回这条记录的ID, SQL该怎么写?

awardsure
2005-10-07 13:20
接着执行slect max(字增字段) from ... 防止并发发生脏读 最好是和插入语句 枷锁 使用synchroized(){.....}

monke
2005-10-08 22:05
那要是有两个人同时插入记录,A插入记录后执行B插入的记录,后来A又查询编号最大的那条记录,那么得到的是B插入的记录,这个该怎么解决呢?

布衣
2005-10-10 15:29
2楼说了,加锁阿,A执行操作时,将表锁住,直到插入完毕,并返回最大记录号,再解锁,执行B操作

coolyu
2005-10-11 10:27
俺的经验:如果是多用户操作,最好是先获取ID(如果是sequence最好),然后再插入记录,这样就不用锁表了.

猜你喜欢