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

相关推荐
呦呦鹿鸣Rzh6 分钟前
redis
数据库·redis·缓存
xiaogai_gai13 分钟前
有效的聚水潭数据集成到MySQL案例
android·数据库·mysql
web130933203981 小时前
Mysql的安装配置教程(非常详细)从零基础入门到精通,看完这一篇就够了
数据库·mysql
三天不学习1 小时前
浅析AI大模型为何需要向量数据库?【入门基础】
数据库·人工智能·欧氏距离·向量数据库·余弦相似度
MonkeyKing_sunyuhua1 小时前
将数据库结构化数据整合到RAG问答中的方式
数据库
喝醉酒的小白1 小时前
MySQL内存使用率高问题排查与解决方案:
数据库
鹅鹅鹅呢1 小时前
mysql 登录报错:ERROR 1045(28000):Access denied for user ‘root‘@‘localhost‘ (using password Yes)
android·数据库·mysql
摘星编程1 小时前
Redis+Caffeine构建高性能二级缓存
数据库·redis·缓存
在人间负债^1 小时前
假装自己是个小白 ---- 重新认识MySQL
android·数据库·mysql
檀越剑指大厂1 小时前
【PostgreSQL系列】PostgreSQL性能优化
数据库·postgresql·性能优化