zoukankan      html  css  js  c++  java
  • mysql清空表

    清空某个mysql表中所有内容
    delete from 表名;
    truncate table 表名;
    不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容。效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。
    delete的效果有点像将mysql表中所有记录一条一条删除到删完,而truncate相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表。



    清空mysql一个库中的所有表

    没有命令,只能分步实现


    方法1:重建库和表
    用mysqldump --no-data把建表SQL导出来,然后drop database再create database,执行一下导出的SQL文件,把表建上;

    方法2:生成清空所有表的SQL
    mysql -N -s information_schema -e "SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM TABLES WHERE TABLE_SCHEMA='eab12'"
    输出结果如下:
    TRUNCATE TABLE AUTHGROUPBINDINGS;
    TRUNCATE TABLE AUTHGROUPS;
    TRUNCATE TABLE AUTHUSERS;
    TRUNCATE TABLE CORPBADCUSTOMINFO;
    TRUNCATE TABLE CORPSMSBLACKLISYInfo;
    TRUNCATE TABLE CORPSMSFILTERINFO;
    TRUNCATE TABLE CORPSMSINFO;
    TRUNCATE TABLE EABASEREGINFOS;
    TRUNCATE TABLE EACORPBLOB;
    TRUNCATE TABLE EACORPINFO;
    ....
    ....
    这样就更完善了:
    mysql -N -s information_schema -e "SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM TABLES WHERE TABLE_SCHEMA='eab12'" | mysql eab12
    即清空eab12中所有的表。
    但是如果有外键的话,很可能会报错。因此还需要加个-f
    mysql -N -s information_schema -e "SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM TABLES WHERE TABLE_SCHEMA='eab12'" | mysql -f eab12
    多执行几次,直到不报错。

  • 相关阅读:
    链接收藏:bullet物理引擎不完全指南
    设计模式的六大原则
    链接错误 2038
    玄天宝录
    第二章 期中架构
    第一章 Linux基础
    13 代理与负载均衡基础
    12 LNMP搭建
    11 搭建博客
    10 Nginx模块介绍
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6205498.html
Copyright © 2011-2022 走看看