【发布时间】:2022-01-22 19:38:01
【问题描述】:
假设我在我的一张表中执行 MySQL INSERT,并且该表的列 item_id 设置为 autoincrement 和 primary key。
如何让查询在同一个查询中输出新生成的主键item_id的值?
目前我正在运行第二个查询来检索 id,但这似乎不是一个好的做法,因为这可能会产生错误的结果......
如果这不可能,那么确保我检索到正确 id 的最佳做法是什么?
【问题讨论】:
-
无法从
INSERT这样的查询中返回任何内容;为什么你认为它可能会产生错误的结果? -
好吧,如果该流程由 2 个人分别执行,那么我认为您可能会得到一个重叠的流程列表 - 因为您必须执行 2 个单独的查询?
-
@JimFell 是的,这基本上是同一个问题,但总的来说这个问题的答案要好得多
-
使用 postgresql 然后这样做 INSERT INTO table (col1,col2) VALUES (val1,val2) RETURNING id or INSERT INTO table (col1,col2) VALUES (val1,val2) RETURNING * or UPDATE table SET col1=val1, col2=val2 WHERE 语句 RETURNING id 或 UPDATE 表 SET (col1,col2)=(val1,val2) WHERE 语句 RETURNING id 或 UPDATE 表 SET (col1,col2)=(val1,val2) WHERE 语句 RETURNING *
标签: mysql insert key auto-increment