mysql事务学习

本文通过一个实例展示了如何在MySQL中使用开始事务、插入数据、设置保留点、回滚到保留点以及提交事务的过程。详细记录了每一步操作,并解释了回滚到保留点后如何影响最终的数据状态,强调了事务在确保数据一致性和完整性中的关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开始事务:

mysql> begin;
Query OK, 0 rows affected (0.01 sec)

插入数据:

mysql> INSERT INTO `mytest`.`t_doctor_statistical_content`(`DSC_ID`, `ORG_CODE`, `ORG_NAME`, `DOCTOR_CODE`, `DOCTOR_NAME`, `STATISTICAL_DATE`, `OUTPATIENT_TIMES_QTY`, `HOSPITALALIZED_TIMES_QTY`, `OUT_HOSPITALALIZE_TIMES_QTY`, `INPATIENT_INCOME_TIMES_AMT`, `OPERATIONS_QTY`, `CREATE_USER_ID`, `CREATE_USER_NAME`, `CREATE_TIME`, `MODIFY_USER_ID`, `MODIFY_USER_NAME`, `MODIFY_TIME`, `REMARK`) VALUES (1, '234234', '人民医院', 'jj0004', '', '2022-10-10 18:05:52', 23, 34, 11, 123456.00, 57, '00514', 'wengml', '2022-10-10 18:06:35', NULL, NULL, NULL, '');
Query OK, 1 row affected (0.01 sec)

设置一个保留点 SAVEPOINT:

mysql> savepoint test1;
Query OK, 0 rows affected (0.01 sec)

继续插入数据:

mysql> INSERT INTO `mytest`.`t_doctor_statistical_content`(`DSC_ID`, `ORG_CODE`, `ORG_NAME`, `DOCTOR_CODE`, `DOCTOR_NAME`, `STATISTICAL_DATE`, `OUTPATIENT_TIMES_QTY`, `HOSPITALALIZED_TIMES_QTY`, `OUT_HOSPITALALIZE_TIMES_QTY`, `INPATIENT_INCOME_TIMES_AMT`, `OPERATIONS_QTY`, `CREATE_USER_ID`, `CREATE_USER_NAME`, `CREATE_TIME`, `MODIFY_USER_ID`, `MODIFY_USER_NAME`, `MODIFY_TIME`, `REMARK`) VALUES (2, '234234', '人民医院', 'jj0004', '', '2022-10-09 18:05:52', 27, 24, 16, 145776.00, 57, '00514', 'wengml', '2022-10-10 18:06:35', NULL, NULL, NULL, '');
Query OK, 1 row affected (0.01 sec)

回滚到保留点 rollback to 保留点名称

mysql> rollback to test1;
Query OK, 0 rows affected (0.01 sec)

提交事务:

mysql> commit;
Query OK, 0 rows affected (0.01 sec)

可以看到数据库中只存在一条数据:

因为回滚到了保留点再提交事务,所以第二次插入数据失效,只有在保留点前的第一条数据有效 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值