gpt4 book ai didi

mysql - 后跟 SELECT LAST_INSERT_ID 时 INSERT 不起作用

转载 作者:可可西里 更新时间:2023-11-01 08:08:45 25 4
gpt4 key购买 nike

有很多关于LAST_INSERT_ID()的问题

就我而言,问题是:

INSERT 后跟 SELECT LAST_INSERT_ID() 时,没有插入任何记录

INSERT INTO sequences (state)  VALUES (0);
select LAST_INSERT_ID();
>>> 80 // nothing is added to DB

INSERT 它自己的作品 OK

INSERT INTO sequences (state)  VALUES (0);
>>>
select LAST_INSERT_ID();
>>> 81 // row is inserted

为了测试,我使用的是 SequelPro,DB 是 Amazon 的 RDS MySQL。当我使用 Python 的 MySQLdb 模块时会发生同样的问题。

理想情况下,我想插入行,取回它的 ID 以供将来识别和使用。

最佳答案

您应该一次运行一个查询。大多数 SQL 接口(interface)不允许多重查询。

MySQL 允许单个查询以 ; 结束,但如果 ; 后面有任何单词(注释除外),则为语法错误,将使整个请求失败。所以 INSERT 也不会运行。

MySQL 确实有一个允许多查询的连接选项,但默认情况下它是不活动的。参见 https://dev.mysql.com/doc/refman/8.0/en/c-api-multiple-queries.html

确实没有理由使用多查询。只需将 SELECT LAST_INSERT_ID() 作为单独的查询运行在 INSERT 之后。只要您使用相同的连接,它就会给您正确的答案。

关于mysql - 后跟 SELECT LAST_INSERT_ID 时 INSERT 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55053806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com