MySQL根据表前缀批量修改、删除表
2022/6/26 2:22:08
本文主要是介绍MySQL根据表前缀批量修改、删除表,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
注意:请先调试好,以及做好备份,再执行操作。
批量修改表
批量给前缀为 xushanxiang_content_ 的表增加一个 username 的字段:
SELECT CONCAT('ALTER TABLE ',table_name,' ADD username varchar(40) NULL COMMENT "用户名";') FROM information_schema.TABLES WHERE table_name LIKE 'xushanxiang\_content\_%';
可以得到下面一些 SQL 语句列表,也就是生成了批量修改表的语句:
之后,我们再批量执行这些 SQL 语句即可。
批量执行语句
方式一、存储过程 while 循环
# 参考代码: DROP PROCEDURE IF EXISTS canal_test; # 删除存储过程 DELIMITER // # 设置分割符1 CREATE PROCEDURE canal_test() BEGIN DECLARE i INT DEFAULT 0; WHILE i<=10 DO update users set mileage=i; SET i = i+1; END WHILE; END // DELIMITER; # 设置分割符2 CALL canal_test(); # 调用存储过程
方式二、source 命令
待执行的 sql 文件为1.sql、2.sql、3.sql、4.sql等, 写一个batch.sql文件:
source 1.sql; source 2.sql; source 3.sql;
在 mysql 下执行 source batch.sql; (注意路径)
如果只有一个 SQL 文件,例如 mysqltest.sql 脚本在 D 盘根目录, 进入 MySQL 的命令行窗口,直接输入如下命令即可批量执行脚本中的 sql 语句【 注:结尾不带分号执行 】
source D:\mysqltest.sql
方式三、在网站程序里动态执行
// 参考用例,可能和您的实际情况不一样 $sqlArr = $this->model->all("SELECT CONCAT('ALTER TABLE ',table_name,' ADD username varchar(40) NULL COMMENT \'用户名\';') FROM information_schema.TABLES WHERE table_name LIKE 'xushanxiang\_content\_%';"); // 得到一个SQL语句的数组; foreach ($sqlArr as $key => $value) { foreach ($value as $k => $v) { $this->model->amd($v); // 依次执行sql } }
批量删除
参考 sql 如下:
SELECT CONCAT('drop table ',table_name,';') FROM information_schema.TABLES WHERE table_name LIKE 'xushanxiang\_content\_%';
接着,参考上面的进行批量执行即可。
题外话,既然说到对数据表进行批量操作,那可能少不了数据表的复制。
数据表的复制
只复制表结构到新表
create table 新表 like 旧表
复制表结构及数据到新表
create table 新表 select * from 旧表
复制一条数据到结构相同的表
INSERT INTO content_1 SELECT * FROM content_0 WHERE id=1
复制部分字段到另一个表
INSERT INTO table2 ( name , price ) SELECT name , price FROM table1 WHERE id=5
出处:MySQL根据表前缀批量修改、删除表 (xushanxiang.com)
这篇关于MySQL根据表前缀批量修改、删除表的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-15MySQL教程:初学者必备的MySQL数据库入门指南
- 2024-11-15MySQL教程:初学者必看的MySQL入门指南
- 2024-11-04部署MySQL集群项目实战:新手入门教程
- 2024-11-04如何部署MySQL集群资料:新手入门指南
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料
- 2024-11-01部署MySQL集群教程:新手入门指南
- 2024-11-01如何部署MySQL集群:新手入门教程