`
张玉龙
  • 浏览: 723402 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

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 你想要的表前缀
完成后 再执行.

这样就完成了表名的批量修改拉…

分享到:
评论

相关推荐

    MySQL中批量删除指定前缀表的sql语句

    有时候我们在安装一些cms的时候,这些cms都是带表前缀的方便区分数据,但有时候我们测试完需要删除的时候又有别的前缀表就可以参考下面的方法

    使用phpMyAdmin批量修改Mysql数据表前缀的方法

    多个网站共用一个Mysql数据库时,为使数据库管理不混乱,一般采用不同的...1、用phpMyAdmin打开要修改前缀的数据库www_sdck_cn,执行以下SQL语句(其中加粗斜体字是需要根据实际需求替换的): Select CONCAT( ‘ALTE

    mysql数据库sql优化

    1. SQL优化 1 1.1. 优化实战 1 1.1.1. 策略1.尽量全值匹配 1 1.1.2. 策略2.最佳左前缀法则 2 1.1.3. 策略3.不在索引列上做任何操作 2 1.1.4. 策略4.范围条件放最后 3 1.1.5. 策略5.覆盖索引尽量用 3 1.1.6. 策略6.不...

    2009达内SQL学习笔记

    当两个表有相同字段时必须加前缀,列名前需加表名和“.”,如“s_emp.id”。 1、用法:SELECT columns,prod2,prod3<列> FROM Table1,table2<表名> 分号结束 如: select id from s_emp; select last_name,name ...

    聊聊高并发高可用那些事(Kafka、Redis、MySQL)

    - 一条SQL语句的执行流程 - InnoDB数据读取和写入过程 - 基本数据结构介绍 - MyIsAM InnoDB 等存储引擎 - 索引类型和方式、聚簇和非聚簇索引 - 回表、覆盖索引、最左前缀、联合索引、索引下推 - Explain分析SQL语句 ...

    mysql数据库的基本操作语法

    手动:手动删除指定表对象的相关列上的索引 索引类似于书籍的目录,可以快速定位到相关的数据,一个表可以有多个索引。 创建索引: create index idx_temp_name on temp(name); 组合索引: create index idx_...

    字段自增控制按照每天或者每月每年自增_sql语句实现

    非主键自增,可以控制按照每天或者每月每年自增,可以控制位数,前缀后缀,返回值中间也可以按照要求拼接。数据库方式实现。

    MySQL自整理超全精华版面试八股文

    一条SQL语句在ySQL中如何被执行的? 索引 什么是索引 索引的优缺点 MySQL的索引有哪些? B树和B+树有什么异同? MySQL为什么使用B+树而不是B树? 主键索引和辅助索引(二级索引) 聚簇索引和非聚簇索】 非聚簇索引...

    20道mysql面试题.docx

    4、如何编写 SQL 语句来有效地使用复合索引? 5、MySQL 中的锁是什么? 6、最左前缀原则是什么? 7、如何处理 MySQL 数据库的 CPU 飙升? 8、什么是视图(View)?视图有哪些特点? 9、请介绍一下 MySQL 中的 ACID ...

    根据表结构自动生成JavaBean,史上最强最专业的表结构转JavaBean的工具(第11版)

    于是一怒之下,自己动手丰衣足食,就自己用Swing写了一个通过数据库的表生成JavaBean的工具,支持MySQL、Oracle、SQLServce、PostgreSQL,完美支持JPA注解,可以同时生成Entity和DTO,可以自动去除表前缀,并支持...

    去掉前面的0的sql语句(前导零,零前缀)

    一个列的格式是单引号后面跟着4位的数字,比如’0003,’0120,’4333,我要转换成3,120,4333这样的格式,就是去掉单引号和前导的0,用以下语句就可以。

    MySQL数据库中CAST与CONVERT函数实现类型转换的讲解

    MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值。 两者具体的语法如下: CAST(value as type); CONVERT(value, type); 就是CAST(xxx AS 类型), CONVERT(xxx,类型)。 可以转换的类型...

    数据库相关的知识点!

    一、约束:作用是保证数据的...explain + sql查询语句,用于查询sql执行信息参数 在使用关键字‘like’查询时:like ‘n%’ 走索引;但是like ‘%n%’不走索引,即有且仅只有后面带上%时走索引 使用函数时索引不生效

    根据表结构自动生成JavaBean,史上最强最专业的表结构转JavaBean的工具(第12版)

    于是一怒之下,自己动手丰衣足食,就自己用Swing写了一个通过数据库的表生成JavaBean的工具,支持MySQL、Oracle、SQLServce、PostgreSQL,完美支持JPA注解,可以同时生成Entity和DTO,可以自动去除表前缀,并支持...

    Mysql索引详细介绍

    在MySQL 5.1中,对于MyISAM和InnoDB表,前缀可以达到1000字节长。请注意前缀的限制应以字节为单位进行测量,而CREATE TABLE语句中的前缀长度解释为字符数。当为使用多字节字符集的列指定前缀长度时一定要加以考虑。 ...

    MySQL中字符串索引对update的影响分析

    本文分析了MySQL中字符串索引对update的影响。分享给大家供大家参考,具体如下: 对某一个类型为varchar的字段添加前缀索引后,基于该子段的条件查询时间基本大幅下降;但对于update操作,所耗的时间却急剧上升,...

    43道MySQL面试题集合(附答案)

    2. 一条 SQL 语句在数据库框架中的执行流程? 3. 数据库的三范式是什么? 4. char 和 varchar 的区别? 5. varchar(10) 和 varchar(20) 的区别? 6. 谈谈你对索引的理解? 7. 索引的底层使用的是什么数据结构? 8. ...

    Sveil开源商城 v1.0

    mce在IE浏览器中错误11、在IE浏览器中添加/编辑分类JavaScript错误12、sql语句表名前缀失败13、添加货币不允许重复14、在IE、Opera浏览器中不能打开分类窗口15、方块和内容模块的错误16、修复后台下载错误17、修复在...

    SQL查询效率注意事项小结

    一、查询条件精确,针对有参数传入情况 二、SQL逻辑执行顺序 FROM–>JOIN–>WHERE–>GROUP–>HAVING–>DISTINCT–>ORDER–>TOP 三、横向 查询需要的字段 当在SQL语句中连接多个表时,请使用表的别名并把别名前缀于每...

    梦想cms(lmxcms) 1.4.rar

    randtags 使用方法看手册后台去除嵌入广告修复bug:数据库恢复(注意:请在升级完成后重新备份数据库,避免以前备份过的无法恢复)搜索时间间隔参数无效的bug修复执行sql语句由于表前缀导致的错误相关链接标签链接有...

Global site tag (gtag.js) - Google Analytics