mysql批量查询、修改表, 批量删除存储过程

场景:有的时候需要批量更新部分有规律的表或者修改其属性。

处理方案:使用 函数CONCAT 来生成批量执行sql语句,再执行批量sql语句。

如:

批量删除所有表

SELECT CONCAT( 'drop table ', table_name, ';' ) 
FROM information_schema.tables 
WHERE TABLE_SCHEMA = 'db_name';  

批量删除特征表

SELECT CONCAT( 'drop table ', table_name, ';' ) 
FROM information_schema.tables 
WHERE table_name LIKE 'act_%';

批量修改特征表

Select CONCAT( 'ALTER TABLE ', table_name, 'RENAME TO ', table_name,';' ) 
FROM information_schema.tables 
Where table_name LIKE 'dec_%';

批量修改数据库引擎

 SELECT CONCAT( 'ALTER TABLE ', table_name, 'ENGINE =INNODB;' ) 
FROM information_schema.tables 
WHERE TABLE_SCHEMA = 'db_name';  

批量删除存储过程

  SELECT  CONCAT( 'drop table ', ROUTINE_NAME, ';' ) FROM information_schema.`ROUTINES`
WHERE ROUTINE_SCHEMA='db_name';
MySQL中,如果你想要批量修改数据库中的存储类型,你可以使用ALTER TABLE语句配合循环或者事务来实现。以下是一些基本的步骤,以及一个简单的例子来展示如何操作。 1. 确定要修改和列:首先,你需要确定哪些和列需要修改存储类型。这通常是因为数据类型不再满足业务需求,或者为了优化性能和存储空间。 2. 编写ALTER TABLE语句:对于每个需要修改存储类型的列,你需要编写一个ALTER TABLE语句。每个ALTER TABLE语句只修改一个列的存储类型。 3. 执行批量修改:你可以手动执行每个ALTER TABLE语句,或者编写一个脚本(如使用MySQL存储过程或shell脚本),来自动执行这些语句。 例如,假设你有多个,每个中都有一个名为`content`的`VARCHAR`类型列,你想要将这些列的类型都改为`TEXT`类型以存储更多的数据。你可以编写如下SQL脚本: ```sql -- 假设有一个名列存储在一个名为 table_list 的临时中 SET @table_list = (SELECT GROUP_CONCAT(table_name ORDER BY table_name) FROM information_schema.tables WHERE table_schema = 'your_database_name'); SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT('ALTER TABLE `', table_name, '` CHANGE `content` `content` TEXT;') ) INTO @sql FROM information_schema.tables WHERE table_schema = 'your_database_name' AND table_name IN (SELECT table_name FROM table_list); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; ``` 这个脚本做了以下几件事情: - 从`information_schema.tables`中获取所有名,并构建一个包含这些名的临时`table_list`。 - 构建一个SQL语句字符串`@sql`,该字符串包含了所有需要执行的ALTER TABLE语句。 - 使用PREPARE语句准备要执行的SQL命令。 - 执行准备好的SQL命令。 - 释放准备好的SQL语句资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值