MYSQL之事务

本文详细介绍了MySQL中的事务处理,包括如何开始、提交、回滚事务,并通过实例展示了事务在DML操作中的作用。重点指出事务对于DELETE、INSERT操作可以进行回滚,但对TRUNCATE操作无效。
摘要由CSDN通过智能技术生成

事务

事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。常用来管理 insert,update,delete 语句。
注:在 MySQL 命令行的默认设置下,事务都是自动提交的,即执行 SQL 语句后就会马上执行 COMMIT 操作。因此要显式地开启一个事务务须使用命令 BEGIN 或 START TRANSACTION,或者执行命令 SET AUTOCOMMIT=0,用来禁止使用当前会话的自动提交。
常用事务控制语句:
1.BEGIN(或START TRANSACTION):显式地开启一个事务;
2.COMMIT(或COMMIT WORK):COMMIT会提交事务,并使已对数据库进行的所有修改成为永久性的;
3.ROLLBACK(或ROLLBACK WORK):回滚会结束用户的事务,并撤销正在进行的所有未提交的修改。
常用事务处理方法:
1、用 BEGIN, ROLLBACK, COMMIT来实现
BEGIN 开始一个事务
ROLLBACK 事务回滚
COMMIT 事务确认
2、用 SET 来改变 MySQL 的自动提交模式
SET AUTOCOMMIT=0 禁止自动提交
SET AUTOCOMMIT=1 开启自动提交
事务测试:
1.建测试表
drop table if EXISTS basic_area;

CREATE TABLE basic_area (
id int(11) NOT NULL,
name varchar(10) DEFAULT NULL,
parentid int(11) NOT NULL,
parentname varchar(20) DEFAULT NULL,
lvl int(11) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2.准备测试数据

INSERT INTO basic_area (`id`, `name`, `parentid`, `parentname`, `lvl`) VALUES (1, '广东省', 0, '广东省', 1);
INSERT INTO basic_area (`id`, `name`, `parentid`, `parentname`, `lvl`) VALUES (2, '深圳市', 1, '广东省', 2);
INSERT INTO basic_area (`id`, `name`, `parentid`, `parentname`, `lvl`) VALUES (3, '广州市', 1, '广东省', 2);
INSERT INTO basic_area (`id`, `name`, `parentid`, `parentname`, `lvl`) VALUES (4, '佛山市', 1, '广东省', 2);
INSERT INTO basic_area (`id`, `name`, `parentid`, `parentname`, `lvl`) VALUES (5, '南山区', 2, '深圳市', 3);
INSERT INTO basic_area (`id`, `name`, `parentid`, `parentname`, `lvl`) VALUES (6, '
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值