Mysql事务

java 复制代码
新建表study01,
create table study01(
   id int auto_increment,  
   name varchar(50) not null,
   money int not null,
   primary key(id));

被auto_increment修饰的字段无需显式赋值,会实现自动加一,且必须是主键。
主键标识该字段是独一无二的。主键值可以被修改,但要保证修改之后的值
不能与其它主键重复,否则执行会发生错误。


插入数据,
insert into study01(name,money) values
('张三',800),
('李四',1000);
java 复制代码
查询事务提交方式,1:自动提交,0:手动提交
select @@autocommit;

关闭自动提交
set @@autocommit=0;

修改值,
update study01 set money=money-500 where name='张三';

没提交事务之前,在当前事务下查询到的字段money值为800-500=300。
另外打开一个cmd查询到的字段money是不变的还是800,这说明没有提交之前,数据是不会发生改变的。



当事务提交后,数据被持久化。
commit;

未提交前,两个不同命令窗口的查询结果,


事务提交后,数据被持久化,

对于mysql是否会自动回滚:我持怀疑态度。因为我在事务中试了好几次执行错误都没有看见自动回滚,所以在以后的编程中,还是自己手动回滚吧。

相关推荐
哈__6 小时前
面向AI智能体的数据库专业技能包:将DBA工程经验封装为可调用能力
数据库·人工智能·dba
阿坤带你走近大数据6 小时前
SQL里where后面的1=1是干嘛的,走的是什么索引
数据库·sql
阿坤带你走近大数据6 小时前
SQL的执行顺序和书写顺序的介绍
数据库·sql·oracle
Poo_Chai6 小时前
QT emit信号后完整处理流程,包括槽函数响应流程
java·开发语言·数据库
这个DBA有点耶7 小时前
从DBA到数据架构师(五):数据架构演进中的技术债务管理
数据库·程序人生·云原生·架构·dba·数据库管理员
Bruce_Liuxiaowei8 小时前
基于微步在线威胁情报的公网 IP 攻击迹象监测:threatbook_query 脚本全解析与 BruceSec 平台整合实践
数据库·tcp/ip·安全·网络安全·智能体
码农颜8 小时前
5.6.2 ⾏级锁死锁
数据库·sql·oracle
ChaHae-In9 小时前
MyBatis动态SQL与MyBatis-Plus高效开发指南
数据库·oracle·mybatis
冰暮流星9 小时前
mysql之分组查询
数据库·mysql
倒流时光三十年9 小时前
PostgreSQL Semi-Join(半连接)通俗讲解
数据库·postgresql