【发布时间】:2013-07-22 21:43:14
【问题描述】:
所以我正在设计一个向 MySQL 数据库中插入一行的函数。该表有一个启用了自动增量的主键。所以我不插入该列的值。但是 PK 是整个表中唯一的唯一列。如何获取我刚刚插入的行?
如果函数在小流量中我看不到问题,但是当它的负载越来越重时,我可以看到一个潜在的错误:假设我插入了一行并且 DB 的 AI 值为 1,那么在fetch 函数开始请求“最新插入的行”,插入另一行,AI 值为 2。现在如果 Insert 1 的 fetch 函数运行,将获取第 2 行。我知道时间间隔需要非常小才能让这个错误真正存在,但是有没有更好的方法来获取正确的行,同时维护只有 PK 作为唯一列的表? (我不想实现额外的校验和列,尽管我认为这是一个潜在的解决方案。)
【问题讨论】:
-
SELECT LAST_INSERT_ID();见here
标签: mysql insert row primary-key fetch