事务
创数据库
mysql> CREATE DATABASE xiao;
Query OK, 1 row affected
mysql> CREATE DATABASE xiao;
Query OK, 1 row affected
使用数据库
mysql> USE xiao;
Database changed
一、事务
所谓事务就是针对数据库的一组操作,它可以由一条或多条SQL语句组成,同一事务
操作具备同步的特点,事务中的语句要么都执行,要么都不执行
(1)开启事务
首先创建一个名为xiao的数据库,并创建一个account表
mysql>CREATE TABLE account(
->id INT primary key auto_increment,
->name VARCHAR(40),
->money FLOAT
->);
Query OK, 0 rows affected
插入相应数据
mysql>INSERT INTO account(name,money) VALUES('a',1000);
Query OK, 1 row affected
mysql>INSERT INTO account(name,money) VALUES('b',1000);
Query OK, 1 row affected
开启一个事务
mysql>START TRANSACTION;
Query OK, 0 rows affected
然后通过UPDATE语句将a账户的100元钱转给b账户
mysql>UPDATE account SET money=money-100 WHERE NAME='a';
Query OK, 1 row affected
Rows matched: 1 Changed: 1 Warnings: 0
mysql>UPDATE account SET money=money+100 WHERE NAME='b';
Query OK, 1 row affected
Rows matched: 1 Changed: 1 Warnings: 0
提交事务
mysql>COMMIT;
Query OK, 0 rows affected
上述语句执行成功后,可以使用SELECT语句来查询account表中的
回滚事务
mysql>ROLLBACK;
需要注意的是,ROLLBACK语句只能针对未提交的事务执行回滚操作,一提交的事
务是不能回滚的
mysql> USE xiao;
Database changed
一、事务
所谓事务就是针对数据库的一组操作,它可以由一条或多条SQL语句组成,同一事务
操作具备同步的特点,事务中的语句要么都执行,要么都不执行
(1)开启事务
首先创建一个名为xiao的数据库,并创建一个account表
mysql>CREATE TABLE account(
->id INT primary key auto_increment,
->name VARCHAR(40),
->money FLOAT
->);
Query OK, 0 rows affected
插入相应数据
mysql>INSERT INTO account(name,money) VALUES('a',1000);
Query OK, 1 row affected
mysql>INSERT INTO account(name,money) VALUES('b',1000);
Query OK, 1 row affected
开启一个事务
mysql>START TRANSACTION;
Query OK, 0 rows affected
然后通过UPDATE语句将a账户的100元钱转给b账户
mysql>UPDATE account SET money=money-100 WHERE NAME='a';
Query OK, 1 row affected
Rows matched: 1 Changed: 1 Warnings: 0
mysql>UPDATE account SET money=money+100 WHERE NAME='b';
Query OK, 1 row affected
Rows matched: 1 Changed: 1 Warnings: 0
提交事务
mysql>COMMIT;
Query OK, 0 rows affected
上述语句执行成功后,可以使用SELECT语句来查询account表中的
回滚事务
mysql>ROLLBACK;
需要注意的是,ROLLBACK语句只能针对未提交的事务执行回滚操作,一提交的事
务是不能回滚的
浙公网安备 33010602011771号