清空表数据

  • 介绍

本文介绍清空数据库表数据的几种方式,以及一些细节问题。

  • 两种方式的区别

delete from table_name;

这种方式会根据查询条件逐条进行删除,会触发触发器,记录日志,速度比较慢。

truncate table_name;

这种方式会把整个表的数据一起清空,不会触发触发器,不会记录日志,会把子增长置为初始值,速度比较快。

  • 有外键时

当对一个设置有外键的表进行truncate操作时,即使所约束的表为空依然会报下面的错:

[Err] 1701 – Cannot truncate a table referenced in a foreign key constraint

这时候,您可以采用下面的方式来避免外键约束检查:

set foreign_key_checks = 0;

truncate act_ru_execution;

set foreign_key_checks = 1;

发表评论

电子邮件地址不会被公开。 必填项已用*标注