Dojo
最新
最佳
搜索
订阅
解道Jdon
架构设计
领域驱动
DDD介绍
DDD专辑
战略建模
领域语言UL
领域事件
商业分析
工作流BPM
规则引擎
架构师观点
数据工程
产品经理
系统思维
微服务
微服务介绍
微服务专辑
模块化设计
SOA
API设计
clean架构
SpringBoot
分布式事务
分布式架构
Kubernetes
DevOps
编程设计
GoF设计模式
模式专辑
面向对象
函数式编程
编程语言比较
编程工具比较
形式逻辑
前端编程
Reactive编程
Jdon框架
Rust语言
人工智能
Web3
模因梗
幽默梗
程序员吐槽
面试技巧
Java入门
数字化转型
认知偏差
道德经
更多话题
数据库中怎么取回刚刚插入的记录?
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最好),然后再插入记录,这样就不用锁表了.