首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么 insert 配置 SELECT LAST_INSERT_ID() 返回个0呢?

就是这个 selectKey 的配置,在执行插入SQL,开始执行获取最后的索引值。 通常只要配置的没问题,返回对象中也有对应的 id 字段,那么就可以正确的拿到返回值了。...解析的时候把 Mapper XML 中的 insert 标签语句解析出来,同时解析 selectKey 标签。最终解析完成,把解析的语句信息使用 MappedStatement 映射语句类存放起来。...因为最开始这两条语句执行的时候,在获取链接的时候,每一条都是获取一个新的链接,那么也就是说,insert xxx、select LAST_INSERT_ID() 在两个 connection 连接执行时...,其实是不对的,没法获取到插入的索引 ID,只有在一个链接或者一个事务下(一次 commit)才能有事务的特性,获取插入数据的自增ID。...代码块如下; 这里的链接获取,最开始没有 if null 的判断,每次都是直接获取链接,所以这种非一个链接下的两条 SQL 操作,所以必然不会获得到正确的结果,相当于只是单独执行 SELECT LAST_INSERT_ID

80930
您找到你想要的搜索结果了吗?
是的
没有找到

mysql insert into as_mysql insert into select使用方法详解

mysql insert into select使用方法详解2017-11-22 15:47 我们先来看看mysql insert into select的语法规则。...例如: INSERT INTO tbl_temp2 (fld_id) SELECT tbl_temp1.fld_order_id FROM tbl_temp1 WHERE tbl_temp1.fld_order_id...为确保二进制日志可用于重新创建原始表,MySQL不允许并发插入INSERT … SELECT语句。...SELECT没有ORDER BY子句的语句返回行 的顺序是不确定的。这意味着,在使用复制时,不能保证这样的SELECT返回在主服务器和从服务器上的顺序相同,这可能会导致它们之间的不一致。...由于这个问题,在MySQL 5.5.18中, INSERT…SELECT ON DUPLICATE KEY UPDATE和INSERT IGNORE… SELECT语句被标记为不安全的基于语句的复制。

1.8K30
领券