gpt4 book ai didi

c# - MySqlCommand.LastInsertedId 是如何工作的?

转载 作者:行者123 更新时间:2023-11-29 01:26:47 25 4
gpt4 key购买 nike

在我的一个项目中,我必须从数据库中获取最后插入的 ID,这样我就可以将新插入的数据与内存中的数据同步,而无需执行 SELECT * FROM my_db; 查询,即我我正在执行 SELECT * FROM my_db WHERE id=new_index

现在,我知道我正在使用的 MySQL 支持查询 select last_insert_id();,所以我想我只需创建该命令并执行它。但是在深入研究 C#(我在项目中使用的编程语言)后,我发现 MySqlCommand 有一个 LastInsertedId 字段。

现在让我感到困惑的是,我希望该字段的 getter 只执行相同的 select last_insert_id(); 查询,但是在查看 MySQL 的日志时,我发现没有这样的查询完全没有。

所以我的问题是,当 ID 由 MySQL 服务器自动生成时,MySqlCommand.LastInsertedId 如何知道分配给我插入的元组的 ID 是什么?

最佳答案

当 MySQL 服务器在更新查询后响应客户端软件(在您的情况下是连接器/网络)时,它会发送 so-called OK_Packet over the tcp (or socket) connection .该数据包包含 last_insert_id 值。

在服务器上,它可用于任何 INSERT 查询而无需其他查询,因此有线协议(protocol)处理程序只是将其放入响应数据包中。

客户端软件从数据包中提取该值并将其呈现给您在 LastInsertedId 上的应用程序软件属性(property)。

关于c# - MySqlCommand.LastInsertedId 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41381892/

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