Mysql sql 巧用,清除整个库所有数据

需求:
    公司业务需求,需要把某个数据库之前的数据全部清除,并保留数据结构;
    
介绍:
    我们都知道对于表中的数据而言,使用:
    
    delete from [tablename] 
    
        这种删除方式,会保留数据库中主键自增值(通俗点说:表中一百条数据,
    你删除了100条,在插入数据,不会是ID为1的数据,而是ID为101的);
    
    所以一般来说我们清除表中的数据都用:
    
    truncate table [talename]
    
        这么做的好处就是:和上面不同,插入一条数据后,数据自增ID为1;
    而不是101;
    
        知道用什么删除了,那么问题来了,一个库文件中几十,上百张表,
    我不能一一去写这个sql清除表数据吧?有什么办法能解决呢?
    
        information_schema 看过mysql数据库的同志们,我相信对这个
    都不陌生吧!你创建一个数据后,这个数据库就存在mysql中;
    
        information_schema数据库是MySQL系统自带的数据库,它提供了
    数据库元数据的访问方式。感觉information_schema就像是MySQL实例
    的一个百科全书,记录了数据库当中大部分我们需要了结的信息,比如字符
    集,权限相关,数据库实体对象信息,外检约束,分区,压缩表,表信息,
    索引信息,参数,优化,锁和事物等等。通过information_schema我们
    可以窥透整个MySQL实例的运行情况,可以了结MySQL实例的基本信息,甚
    至优化调优,维护数据库等,可以说是真正的一部百科全书啊哈哈。
    
    SELECT
       CONCAT(
        'truncate table ',
        table_name,
        ';'
       )
    FROM
       information_schema.`TABLES`
    WHERE
       table_schema = 'test'

    只需要这样就可以把所有表的truncate table table_name; 这个sql
    全部输出了,你只需要复制,粘贴,执行,你就可以一边喝茶了;
    
    根据不同的业务还能继续延伸~,就看同学们需要实现什么功能了
    
    
    

    

你可能感兴趣的:(Mysql sql 巧用,清除整个库所有数据)