truncate 是DDL,用于清空表中的数据,因为是DDL语言所以不能够回滚,并且不触发trigger。
具体使用方式:TRUNCATE TABLE emp;
delete 是DML,用于where条件的清空数据,当没有where时清空所有数据。因为是DML语言所以可以回滚,并且在执行过程中触发trigger。具体使用方式为:DELETE FROM emp WHERE job = 'CLERK';
另外delete操作容易造成数据库表碎片,影响查询效率。当是快进快出表,并且要用到删除整个数据时要考虑truncate操作
具体使用方式:TRUNCATE TABLE emp;
delete 是DML,用于where条件的清空数据,当没有where时清空所有数据。因为是DML语言所以可以回滚,并且在执行过程中触发trigger。具体使用方式为:DELETE FROM emp WHERE job = 'CLERK';
另外delete操作容易造成数据库表碎片,影响查询效率。当是快进快出表,并且要用到删除整个数据时要考虑truncate操作
truncate与delete的区别
本文详细对比了SQL语言中truncate和delete两条指令的区别。truncate作为DDL语言不可回滚且不触发trigger,适合快速清空整张表;而delete作为DML语言可以回滚并触发trigger,适合有条件地删除数据。
1287

被折叠的 条评论
为什么被折叠?



