mysql隐式提交,隐式回滚,truncate,delete的区别。

mysql数据库默认事物自动提交(commit=1),开启一个事物begin,commit,或者rollback.
DDL语句具有隐式提交功能(每个DDL语句自带一个commit),
说说隐式回滚:
desc t1;
±------±------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±------±------------±-----±----±--------±------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(20) | YES | | NULL | |
±------±------------±-----±----±--------±------+
2 rows in set (0.00 sec)
开启一个事物:
mysql> begin;
Query OK, 0 rows affected (0.00 sec)
插入一条语句:
mysql> insert into t1 select 87,‘sd’;
Query OK, 1 row affected (0.01 sec)
Records: 1 Duplicates: 0 Warnings: 0

mysql> select * from t1;
±—±-------+
| id | name |
±—±-------+
| 1 | 张三 |
| 2 | 李四 |
| 3 | llllll |
| 4 | 刘六 |
| 87 | sd |
±—±-------+
5 rows in set (0.00 sec)
意外退出:
mysql> exit
Bye
再次连接数据库:

mysql> select *from t1;
±—±-------+
| id | name |
±—±-------+
| 1 | 张三 |
| 2 | 李四 |
| 3 | llllll |
| 4 | 刘六 |
±—±-------+
4 rows in set (0.00 sec)
刚刚插入的数据已经rollback掉。

truncate和delete的区别:
1,truncate不能被回滚,delete可以回滚。
2,truncate清空表的自增Id属性,从1开始记录,而delete则不会,
3,truncate可以回收表空间,delete不会。

truncate是DDL语句,delete是DML语句,
DQL:数据库查询语言。关键字:SELECT … FROM … WHERE。

DDL :数据库模式定义语言。关键字:CREATE,DROP,ALTER。

DML:数据操纵语言。关键字:INSERT、UPDATE、DELETE。

DCL:数据控制语言 。关键字:GRANT、REVOKE。

TCL:事务控制语言。关键字:COMMIT、ROLLBACK、SAVEPOINT。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值