我有以下疑问:
INSERT INTO table (a) VALUES (0)
ON DUPLICATE KEY UPDATE a=1我需要insert或update的ID。通常我会运行第二次查询来获得这个结果,因为我相信insert_id()只返回“插入”的ID,而不返回更新后的ID。
有没有一种方法可以在不运行两个查询的情况下插入/更新和检索行的ID?
发布于 2009-04-22 18:40:42
您可能会看到REPLACE,如果记录存在,这实际上是一个删除/插入操作。但这将更改自动增量字段(如果存在),这可能会中断与其他数据的关系。
发布于 2009-04-22 21:02:50
我不知道你的MySQL版本是什么,但是在InnoDB上,autoinc有个bug
5.1.20中的错误,并在5.1.23 http://bugs.mysql.com/bug.php?id=27405中更正
5.1.31中的错误,并在5.1.33 http://bugs.mysql.com/bug.php?id=42714中更正
发布于 2019-11-26 20:50:50
我遇到了一个问题,在重复键更新时,id=LAST_INSERT_ID( id )将主键递增1。
https://stackoverflow.com/questions/778534
复制相似问题