MySQL之delete与truncate的区别

一、说明:

delete可用于删除单条或多条数据;
truncate清空表中的所有数据。

二、语法:
delete 
from table
(where ···)

truncate table tab1;

// 删除多表的记录
delete1的别名,2的别名
from11的别名
inner|left|right join22的别名
on 连接条件
where 筛选条件
三、区别:

1、delete可以加where条件;truncate不可加;
2、truncate删除效率高于delete一些;
3、若需删除的表中有自增长列,用delete删除后,再插入数据,自增长列的值从断点(即删除前的值处)开始;而truncate删除后,再插入数据,自增长列的值从1开始;
4、truncate删除无返回值,delete删除有返回值(希望返回影响行数的时候,用delete);
5、truncate删除不能回滚,delete删除可回滚。

你可能感兴趣的:(MySQL)