【发布时间】:2010-12-14 13:26:29
【问题描述】:
我有一个存储记录的数据库表 A,A 有一个带有 auto_increment 的主键(recordid),每次我向 A 中插入一条记录时,我都会获取插入的 recordid 并将其存储在另一个 masterTable 中。
我在插入 A 后立即使用 select 语句来获取这样的记录 ID:
通过recordid DESC LIMIT 1从A order中选择recordid;
但是我今天遇到了一个问题,两条记录同时插入(由不同的线程),我最终在主 ID 中存储了错误的记录 ID(两个 txns 的记录 ID 相同)
我听说过 Statement.getGeneratedKeys(),我想知道这是否真的有助于解决问题。或者处理这个问题的最佳方法是什么。
【问题讨论】: