mysql事务

mysql事务

#mysql事务

/*

什么是事务?
所谓的事务处理其实就是保证数据操作的完整性,所有的操作要
么同时成功,要么同时失败

事务的特性(ACID)
1.原子性Atomicity

2.一致性Consistency

3.隔离性Isolation

4.持久性Durability

*/

/*
在mysql数据库中如何使用事务

1.选择引擎(Myisam引擎不支持事务,InnoDB引擎支持事务)

2.开启事务(START TRANSACTION)

3.提交事务/回滚事务(COMMIT/ROLLBACK)

*/

#
CREATE TABLE account(
id int,
name VARCHAR(50),
money int UNSIGNED
)ENGINE INNODB charset utf8;

#
INSERT INTO account VALUES(1, '韦小宝', 5000);
INSERT INTO account VALUES(2, '令狐冲', 6000);

#
SELECT * FROM account;

#转账(需要用到事务)
START TRANSACTION; #开启事务
#如下2条sql语句是一个整体,要么同时成功,要么同时失败
UPDATE account SET money = money + 500 WHERE NAME = '令狐冲';
UPDATE account SET money = money - 500 WHERE NAME = '韦小宝';
COMMIT; #提交事务
#ROLLBACK; #回滚事务

#
SELECT * FROM account;

#因为money列上设置了UNSIGNED,所以会报错
#报错1690 - BIGINT UNSIGNED value is out of range in '(`myemployees`.`account`.`money` - 8000)'
UPDATE account SET money = money - 8000 WHERE NAME = '韦小宝';

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值