gpt4 book ai didi

mysql - 没有自动递增 PK 的最后插入行信息

转载 作者:行者123 更新时间:2023-11-29 14:48:54 24 4
gpt4 key购买 nike

我有许多表“共享”单个自动递增主键 - 这是通过插入时的触发器完成的,如下所示:

FOR EACH ROW 
BEGIN
INSERT INTO master (time) VALUES (NOW());
SET NEW.id = LAST_INSERT_ID();
END

这会生成刚刚插入的行的 PK。然而,这确实产生了一个问题:我似乎无法弄清楚该 ID 是什么。 last_insert_id 显然不会返回任何内容,因为上述语句并未在被视为“当前连接”的情况下执行。

有没有办法在没有自动递增主键的情况下访问连接上最近插入的行?

更新:作为临时(?)措施,我删除了触发器,现在通过在模型中插入 master 来生成 ID。如果我能以某种方式返回触发器设置的值,似乎会更好。

最佳答案

文档确实说,“对于更改 [LAST_INSERT_ID] 值的存储函数和触发器,该值会在函数或触发器结束时恢复,因此以下语句不会看到更改的值。”

尝试一个存储过程,它可以执行两次插入并返回分配的 ID。

或者,放弃以“Oracle 方式”做事,喝 MySql Kool-Aid,只在表上使用自动递增 id。

关于mysql - 没有自动递增 PK 的最后插入行信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6217700/

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