MySql中drop、truncate、delete的区别

1.drop:能对table和view

用法:

 drop table [is exists] 表1,表2,表3....;

①drop是DDL中删除表的操作,会删除表结构和所有数据,并释放空间。

②并且因为事务的特性,DDL会进行隐式提交,所以不能进行事务回滚

③drop语句将删除表的结构所依赖的约束,触发器,索引,依赖于该表的存储过程、函数将保留,但是变为invalid状态。

 2.truncate:只能对table

用法:

truncate table 表名

①truncate是DDL中删除表的操作,会删除表并重新创建一个表。

②并且因为事务的特性,DDL会进行隐式提交,所以不能进行事务回滚

③对于外键(foreignkey )约束引用的表,不能使用 truncate table,而应使用不带 where 子句的 delete 语句。

④truncatetable不能用于参与了索引视图的表。

3.delete:能对table和view

用法:

delete from 表名 [where condition];

①delete是DML中删除数据的操作,只有在commit或者是执行DDL操作或者安全退出时事务会提交,在这之前可以回滚

②delete可根据条件删除表中满足条件的数据,如果不指定where子句,那么删除表中所有记录。

③delete语句不会影响表所占的空间。

三者中最快的是drop,直接删除,truncate因为也是直接删除,但是由于还要重新创建所以比drop慢,但是比delete快。

转载于:https://www.cnblogs.com/wxw7blog/p/7874246.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值