MySQL 清除整库表数据

删除表中所有数据我们常用以下命令执行删除

delete from [tablename] 

这种删除方式,会保留数据库中主键自增值。

通俗点说:表中一百条数据,你删除了100条,在插入数据,不会是ID为1的数据,而是ID为101的。

这对于一个有强迫症的人来说,是受不了的

所以我们改用:

truncate table [talename]

删除后再添加数据,瞬间清透,舒服了

但是如果我们要删除整个库的数据呢?

what

需求总是意向不到的来

下面教你巧用SQL

information_schema

看过mysql数据库的同志们,我相信对这个都不陌生吧!你创建一个数据后,这个数据库就存在mysql中;

我们看看这是个什么东西?

information_schema数据库是MySQL系统自带的数据库,它提供了数据库元数据的访问方式。感觉information_schema就像是MySQL实例的一个百科全书,记录了数据库当中大部分我们需要了结的信息,比如字符集,权限相关,数据库实体对象信息,外检约束,分区,压缩表,表信息,索引信息,参数,优化,锁和事物等等。通过information_schema我们可以窥透整个MySQL实例的运行情况,可以了结MySQL实例的基本信息,甚至优化调优,维护数据库等,可以说是真正的一部百科全书啊哈哈。

so

SELECT
   CONCAT(
    'truncate table ',
    table_name,
    ';'
   )
FROM
   information_schema.`TABLES`
WHERE
   table_schema = 'test';

这个你就可以生成整个库中所有的表的truncate table table_name

ctrl+c、ctrl+v、执行

根据不同业务还可以延伸

mysql真香!!!

添加新评论