博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL 插入数据后返回自增id的方法
阅读量:4219 次
发布时间:2019-05-26

本文共 663 字,大约阅读时间需要 2 分钟。

不推荐方法:
INSERT INTO tim_test(`name`)values("tim");SELECT max(id) from tim_test;
首先性能较低,且在高并发情况下,返回的值是不正确的。
推荐方法:
SELECT LAST_INSERT_ID();
因为LAST_INSERT_ID是基于Connection的,只要每个线程使用独立的Connection对象,LAST_INSERT_ID函数将返回该Connection对AUTO_INCREMENT列最新的insert or update生成的第一个record的ID,这个值不会被其它客户端(Connection)影响,保证了能够找回自己的ID而不影响其它客户端的活动,而且不需要加锁。

注意:
上面有句:insert tim_test(name)values("1"),("2"),("3");批量插入的语句,此时,执行SELECT返回的主键ID是本次连接的第一个插入的主键ID的值,因此是2,
而不是一组列表
MyBatis中MySQL insert返回主键值的方法有两种:
1、
insert按如下修改,主键值包装在了参数对象里边,通过user.getId()获取:
2、
插入selectKey标签,获取同上
SELECT LAST_INSERT_ID()
insert into a (name, type) values(#{name}, #{type})
你可能感兴趣的文章
cocos2dx CCObject引用计数,内存释放分析(1)
查看>>
cocos2dx2.X 编译时,传递编译选项
查看>>
ccCArray.cpp 文件
查看>>
cocos2dx 屏幕大小
查看>>
libgdx: 2D Particle Editor工具使用
查看>>
eclipse 给jar库添加源码
查看>>
3.0正式版环境搭建(4)-- 运行(3)创建的工程
查看>>
C++ 枚举声明 enum 和 enum class
查看>>
Python optionParser模块的使用方法
查看>>
android 消灭星星出错
查看>>
PyCharm 教程(三)Hello world!
查看>>
PyCharm: 显示源码行号
查看>>
cocos2dx使用第三方字库.ttf,需要注意的事项
查看>>
cocos2dx 音频模块分析(4): 音效部分
查看>>
cocos2dx 音频模块分析(5): 音效部分
查看>>
19、Cocos2dx 3.0游戏开发找小三之Action:流动的水没有形状,漂流的风找不到踪迹、、、
查看>>
cocos2.X版本lua端使用定时器的方法
查看>>
lua math.fmod使用注意小数问题
查看>>
lua 时间转化
查看>>
lua学习笔记之五(Lua中的数学库)
查看>>