面试中被问到,当时一头雾水,查来积累下~
相同点
都能删除表中的全部数据;
不同点
1.truncate是DDL,delete是DML命令,所以truncate命令更准确的说是修改表的定义(属性);
2.truncate不支持事务回滚,而delete支持事务回滚;
3.如果表的主键是自增的,那么使用truncate清空表后会初始化自增属性(重新从1开始自增);而delete删除所有数据后,主键自增属性不会被初始化,接着清除数据前的自增值继续自增。
都能删除表中的全部数据;
1.truncate是DDL,delete是DML命令,所以truncate命令更准确的说是修改表的定义(属性);
2.truncate不支持事务回滚,而delete支持事务回滚;
3.如果表的主键是自增的,那么使用truncate清空表后会初始化自增属性(重新从1开始自增);而delete删除所有数据后,主键自增属性不会被初始化,接着清除数据前的自增值继续自增。
本文标题:用delete和trancate删除表记录的区别
本文链接:https://www.haomeiwen.com/subject/kokkmktx.html
网友评论