先说下使用mysql 的 SELECT LAST_INSERT_ID()这个sql语句的场景,就是我们向主键是自增的mysql数据表(简称user表)中insert一条记录后,我们期望 获取刚刚写入这条记录的id,因为某些场景下需要获得这个id去做其它的操作,所以很自然的想到了使用SELECT LAST_INSERT_ID() 这个sql语句来获取插入记录后返回的自增id,参考...
因为最开始这两条语句执行的时候,在获取链接的时候,每一条都是获取一个新的链接,那么也就是说,insert xxx、select LAST_INSERT_ID() 在两个 connection 连接执行时,其实是不对的,没法获取到插入后的索引 ID,只有在一个链接或者一个事务下(一次 commit)才能有事务的特性,获取插入数据后的自增ID。 而因为这部...
这里的链接获取,最开始没有 if null 的判断,每次都是直接获取链接,所以这种非一个链接下的两条 SQL 操作,所以必然不会获得到正确的结果,相当于只是单独执行SELECT LAST_INSERT_ID()所以最终的查询结果为 0 了就!你可以测试把这条语句复制到 SQL查询工具中执行 三、震惊:同一个坑 😂 但其实就这么一个链接的...
SQL 複製 USE AdventureWorks2022; GO SELECT DISTINCT p.LastName, p.FirstName FROM Person.Person AS p INNER JOIN HumanResources.Employee AS e ON e.BusinessEntityID = p.BusinessEntityID WHERE 5000.00 IN ( SELECT Bonus FROM Sales.SalesPerson AS sp WHERE e.BusinessEntityID = sp.BusinessEntityID...
如果表的某个字段被设置为自增型的(通常是ID),那么在插入新的纪录之后,这个LAST_INSERT_ID()函数会返回插入的记录的ID,select 这个值并付给一个变量后可以在后面的SQL里面使用,通常用于外键关联。可以参考下这里:http://zhaohe162.blog.163.com/blog/static/38216797201122411193745/ ...
使用SELECT LAST_INSERT_ID() 函数,我们可以获取插入记录的 ID: 代码语言:sql 复制 SELECTLAST_INSERT_ID(); 这将返回一个整数,即插入的记录的 ID。 需要注意的是,如果插入的记录的 ID 是自动生成的,例如使用 AUTO_INCREMENT 属性定义的列,则 SELECT LAST_INSERT_ID() 函数将返回该列的下一个可用...
SELECT LAST_INSERT_ID() </selectKey> </insert> 1. 2. 3. 4. 5. 6. 总体解释:将插入数据的主键返回到 user 对象中。 具体解释: SELECT LAST_INSERT_ID():得到刚 insert 进去记录的主键值,只适用与自增主键 keyProperty:将查询到主键值设置到 parameterType 指定的对象的那个属性 ...
这里的链接获取,最开始没有 if null 的判断,每次都是直接获取链接,所以这种非一个链接下的两条 SQL 操作,所以必然不会获得到正确的结果,相当于只是单独执行SELECT LAST_INSERT_ID()所以最终的查询结果为 0 了就!你可以测试把这条语句复制到 SQL查询工具中执行 ...
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long"> SELECT LAST_INSERT_ID() </selectKey> 1 2 3 产生原因 因为 执行插入语句 是在 写库 ,而SELECT LAST_INSERT_ID() 是在读库执行。 解决方案 ## 添加/FORCE_MASTER/ 注解 使该sql 走 master 节点,代码如下 <selectKey keyPropert...
/ BigInteger lastId = (BigInteger)getSession().createSQLQuery("select last_insert_id();").uniqueResult();return lastId.longValue();} 另外这个方法一般在save()之后,也就是insert一条记录后使用select last_insert_id();。直接用selectlast_insert_id();得到的结果好像是0 ...