根据以下两篇文章写出来的
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 你想要的表前缀
完成后 再执行.
这样就完成了表名的批量修改拉…
分享到:
相关推荐
此外,如果表前缀更改涉及跨数据库操作,那么SQL语句会有所不同,可能需要使用`USE`语句切换数据库。 总之,批量修改MySQL中的表前缀是一项涉及数据库操作的重要任务,需要谨慎执行,并且确保在执行前有充分的备份...
另一种情况是批量修改表名,例如你想将所有以`dede_`为前缀的表更改为另一个前缀,可以使用以下SQL语句: ```sql SELECT CONCAT('ALTER TABLE ', table_name, ' RENAME TO ', table_name, ';') FROM information_...
批量删除相同前缀的数据表,通常需要编写SQL语句或者使用脚本来实现。在PHP环境中,我们可以编写一个PHP脚本来执行这个任务。"killsql.php"文件就是一个这样的例子,它可能包含以下步骤: 1. **连接MySQL数据库**:...
2. **查询表名**:编写SQL语句,通过`SHOW TABLES`命令获取所有数据表的列表,并通过正则表达式筛选出具有特定前缀的表名。 3. **安全检查**:在实际删除之前,确保对数据进行备份,因为删除操作通常是不可逆的。...
【批量删除MySQL数据库相同前缀的数据表 v1.0】是一个针对MySQL数据库设计的实用工具,主要用于高效地删除具有特定前缀的多个数据表。在数据库管理中,尤其是在开发和测试环境中,有时需要快速清理与特定项目或功能...
4. **批量删除操作**:对于每个匹配到的表名,工具将构造并执行一个`DROP TABLE` SQL语句,以删除这些表。为了确保安全,可能需要在此步骤前进行确认或添加日志记录。 5. **错误处理和异常捕获**:在执行过程中,...
本文将详细讲解如何使用SQL命令来更改数据库中的表名,以及如何批量修改表名前缀,以适应不同的应用场景。 首先,我们需要理解数据库的基本概念。数据库是一个组织和存储数据的系统,它提供了一种方式来有序地管理...
2. **预处理SQL语句**:由于数据表前缀可能是动态的,所以需要使用字符串操作函数,如`strpos()`和`substr()`来获取和构建删除命令。在安全考虑下,应使用参数化查询或预处理语句,防止SQL注入攻击。 3. **查询数据...
这个实例源码“PHP实例开发源码—批量删除MySQL数据库相同前缀的数据表工具.zip”提供了一个实用的解决方案,帮助开发者批量删除具有特定前缀的MySQL数据库数据表。这个功能在数据库维护、测试环境清理或应用程序...
7. 最后,执行SQL语句,确认所有的表前缀已成功更改为"sdck_"。 在执行任何数据库级别的修改操作时,**重要提示**:一定要在开始之前备份你的数据。因为任何误操作都可能导致数据丢失或损坏。尽管phpMyAdmin是一种...
在使用Navicat的解决方案中,通过`information_schema.TABLES`视图选取所有符合特定前缀模式的表名,并使用`CONCAT`函数结合`ALTER TABLE`语句生成批量重命名的SQL语句。这一操作的优点是简便快捷,无需编写复杂程序...
通过启用binlog,系统可以记录所有更改数据的操作,如INSERT、UPDATE、DELETE等SQL语句。这样一来,在遇到数据丢失的情况时,就可以利用这些日志文件来恢复丢失的数据。 #### 二、启用binlog日志 **1.1 配置步骤**...
### MySQL数据库SQL优化 #### 一、SQL优化 在MySQL数据库管理中,SQL查询的性能直接影响到系统的响应时间和资源消耗。通过合理的SQL优化,可以显著提高数据处理速度,降低服务器负载,提升用户体验。 ##### 1.1 ...
在Mybatis中实现分页,通常需要借助数据库提供的分页功能(如MySQL的LIMIT子句),或者使用Mybatis提供的拦截器进行SQL语句的拦截,然后动态添加分页逻辑。 ### 数据增加生成id 在Mybatis中,如果需要在插入数据时...
Binary Log是MySQL用于记录所有更改数据的SQL语句的日志,它对每个事务的更改都进行了详细记录。Binary Log主要用于数据库的复制(replication)和数据恢复。开启Binary Log是实现主从复制的前提条件之一。 #### 配置...
根据提供的文件信息,这里将详细解释与MySQL语法相关的知识点,包括创建表、索引管理、数据查询、数据更新等核心操作。 ### 1. 创建表(Create Table) 在MySQL中,`CREATE TABLE` 语句用于创建一个新的表。基本...
本文总结了 MySQL 数据库中常用的 SQL 语句和操作,涵盖了数据操作、数据定义、数据控制、事务控制、程序化 SQL 等方面。 数据操作 * SELECT:从数据库表中检索数据行和列 * INSERT:向数据库表添加新数据行 * ...
此方法直接通过`mysql_query`函数获取数据库中的所有表,然后检查每个表名是否以指定的前缀(在这个例子中是"class_")开始。如果符合条件,就执行`DROP TABLE`语句删除该表,并显示删除成功的信息。 ```php mysql...