在使用mybatis想要插入一条数据时,需要最后将事务提交,这时如果设置了主键自动递增,主键会随着数据的插入自增1。但是看下面的情况。

try (SqlSession sqlSession = sessionFactory.openSession()) {MyUser myUser = new MyUser();myUser.setUname("MMC");myUser.setUsex("MAN");mapper.addUser(myUser);//事务不提交,但是主键还是会自动增长//sqlSession.commit();}

第一次事务注释运行程序会发现数据库没有新增数据
第二次取消注释运行程序发现数据是插入成功了,但是主键却增了2次
原因是:mysql数据库主键不是事务性质的,所以当没有提交事务时,主键的自动递增是不会回滚的,之所以不把主键自增加入到事务管理,可以看一下例子

//transaction1
begain transaction
insert into A
commit
//transaction2
begain transaction
insert into A
commit

当两次给A表插入数据时间间隔1毫秒,事务1插入进去id自增1了,还没等事务1完成,事务2也开始插入数据,这时他们拿到的id都还是没有自增的、同一个id,所以这会造成主键的重复,所以mysql没有将主键纳入事务管理,只要有数据插入,不管事务是否提交完成,主键先自增1,这样就不会造成上述的问题了

MySql插入一条数据不提交事务主键还是会自增1相关推荐

  1. python mysql批量insert数据、返回id_Python3 操作 MySQL 插入一条数据并返回主键 id的实例...

    Python 中貌似并没有直接返回插入数据 id 的操作(反正我是没找到),但是我们可以变通一下,找到最新插入的数据 #!/usr/bin/env python3 # -*- coding: UTF- ...

  2. php mysql 插入多条数据_雷林鹏分享:PHP MySQL 插入多条数据

    使用 MySQLi 和 PDO 向 MySQL 插入多条数据 mysqli_multi_query() 函数可用来执行多条SQL语句. 以下实例向 "MyGuests" 表添加了三 ...

  3. php mysql 插入多条数据_mysql如何插入多条数据?

    mysql插入多条数据的方法:1.使用"INSERT INTO 表名 字段列表 VALUES (值1) - , (值n);"语句插入数据:2.使用"INSERT INTO ...

  4. 利用python脚本一键为MySQL插入万条数据

    运行环境:Windows 10 技术栈:python3,MySQL8.x 编写目的 MySQL是我们研究开发时最常用的关系型数据库.当需要向MySQL数据库中插入大量数据时,一次一条地插入显然不得劲. ...

  5. mysql 主键倒序查询速度慢_一亿条数据order by主键降序速度很慢

    我用sysbench造了1亿条数据,mysql用了30分钟,tidb总共花了3个小时,感觉tidb在批量插入时比较慢,如果后面程序做分页查询会很慢的. count总数.降序排序也比mysql慢. ti ...

  6. c# mysql 插入返回id_在C#中,mysql插入一条数据时,怎么同时把这条数据的主键返回?...

    展开全部 可以尝试使用  last_insert_id()  来获取一下看看. 下面是 仅仅在 mysql 下面的测试例子: mysql> CREATE TABLE test_create_ta ...

  7. mysql 存储过程查询优化_mysql用存储过程插入百万条数据, 及查询优化

    查看所有存储过程: show procedure status; 查看详细存储过程 ptest: show create procedure ptest; 存储过程插入数据: create table ...

  8. 如何给mysql表添加百万条数据_给mysql一百万条数据的表添加索引

    直接alter table add index 添加索引,执行一个小时没反应,并且会导致锁表:故放弃该办法,最终解决办法如下: 一.打开mysql 命令行客户端 这里我们那可以看到导出的数据文件所存放 ...

  9. 关于向MySQL插入一条新纪录的问题

    用JDBC向MySQL插入一条数据 原先的做法:jsp页面传递参数username,userzhuanye,userxingbie //增加方法 public void dbZengJia(State ...

最新文章

  1. 杨元庆:兔子要变成狼靠的是体制的激励
  2. 【BLE】TLSR8258开发记录之15--模拟FATFS
  3. js window.open()打开的页面关闭后刷新父页面
  4. java test使用手册,啄木鸟(woodpecker)自动化测试工具使用手册
  5. oracle执行计划cost单位,Oracle 执行计划(5)—cost成本之索引范围扫描-B树索引
  6. ActiveMQ RabbitMQ RokcetMQ Kafka实战 消息队列中间件视频教程
  7. 学校图书借阅管理系统(MySQL)
  8. 记七彩虹刷bios问题
  9. transformer 翻译模型
  10. 统信自带浏览器js不兼容问题
  11. VS2008下载地址和版本破解
  12. Windows系统下安装Mentor的HDL Designer Series(HDS)2021.1工具
  13. 微信小程序开发工具调试
  14. 例题5.20 秦始皇修路 LA5713
  15. 天干地支计算公式_日干支公式速算法,根据阴历或阳历推算日干天干地支方法...
  16. 典型Π型RC滤波电路
  17. 解决Win10安装Ubuntu20.04双系统出现的win10引导失败方案
  18. Internet标准时间RFC3339格式说明
  19. stm32定时器中断配置及使用
  20. Java 提示用户输入温度以及C或F_已知华氏温度与摄氏度之间的转换公式是C=519X(F—32)编写一个程序将用户输入华氏温度转换成摄氏温度并给予输出...

热门文章

  1. thinkphp官方类库
  2. w7设置双显示器_后期师在家复工的正确姿势——专业大屏显示器少不了
  3. logstash mysql报错_elk系列教程:logstash报错处理
  4. 文献阅读:Linformer: Self-Attention with Linear Complexity
  5. python 解决鸡兔同笼问题
  6. 吃透Chisel语言.15.Chisel模块详解(二)——Chisel模块嵌套和ALU实现
  7. 13. Fabric2.2 区块链农产品溯源系统 - 智能合约调试
  8. python图像处理 (二).PIL图像处理库学习②
  9. 经典MySQL常用语句大全
  10. 是学生都copy下来,现在不用,将来绝对要用