mysql批量删除指定前缀的表,批量修改表名的SQL语句
根据以下两篇文章写出来的 mysql -uroot -p123 -s information_schema -e "SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM TABLES WHERE TABLE_SCHEMA='stats'"|mysql stats -uroot -p123 mysql -uroot -p123 -s information_schema -e "SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM TABLES WHERE TABLE_SCHEMA='stats' and table_name LIKE '%_registration'"|mysql stats -uroot -p123
mysql -uroot -p123 -s information_schema -e "SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM TABLES WHERE TABLE_SCHEMA='stats'" 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 多执行几次,直到不报错。 以上就是Mysql清空表的实现方法。
清空 Select CONCAT( 'TRUNCATE table ', table_name, ';' ) FROM information_schema.tables Where table_name LIKE '%_registration'; 删除 Select CONCAT( 'drop table ', table_name, ';' ) FROM information_schema.tables Where table_name LIKE 'uc_%'; 注意: like ‘uc_%’ 其中 uc_是你需要替换的表前缀. 执行查询,会自动生成出 drop table table_name这样的SQL语句. 然后复制 drop语句 可以执行删除的操作了. 这么一来也可以安全的审核一下语句,避免误操作.. 顺便补充一下一个批量修改表名的操作方法 Select CONCAT( 'ALTER TABLE ', table_name, 'RENAME TO ', table_name,';' ) FROM information_schema.tables Where table_name LIKE 'uc_%'; 下面这种代码是今天遇到的,表头前面是 db,但是没有下横线显得很乱,于是批量将”dbtable_name”改成”db_table_name” 主要用的函数是mysql的substring函数 mysql教程 substring 字符截取函数 substring(str,pos)语法 substring(filed,m):截取filed字段从第m个字符开始到结束的字符串; substring(filed,m,n):截取filed字段从第m个字符开始的长度为n的字符串; str,字符 pos,从第几个开始取 Select CONCAT( 'ALTER TABLE ', table_name, 'RENAME TO db_', substring(table_name,3),';' ) FROM information_schema.tables Where table_name LIKE 'db%'; 会得到结果 ALTER TABLE uc_aaa RENAME TO uc_aaa; ALTER TABLE uc_bbb RENAME TO uc_bbb; 批量复制一下到记事本或者 et之类的编辑工具中,然后批量替换 RENAME TO uc 成 RENAME TO 你想要的表前缀 完成后 再执行. 这样就完成了表名的批量修改拉…
相关推荐
世樹 2020-11-11
SCNUHB 2020-11-10
bleach00 2020-11-10
CoderToy 2020-11-16
emmm00 2020-11-17
王艺强 2020-11-17
ribavnu 2020-11-16
bianruifeng 2020-11-16
wangshuangbao 2020-11-13
苏康申 2020-11-13
vivenwan 2020-11-13
moyekongling 2020-11-13
云中舞步 2020-11-12
要啥自行车一把梭 2020-11-12
aydh 2020-11-12
kuwoyinlehe 2020-11-12
minerk 2020-11-12
vitasfly 2020-11-12