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根据表前缀批量修改、删除表的更多相关文章
- mysql语句3-插入、修改删除表
二.DML数据操纵语句 关键字:insert(插入) delete(删除) update(更新) select(查询) 1.表创建好以后,就可以插入记录了,语法如下: 方法一 :insert i ...
- (转)mysql数据库表名批量修改大小写
由于不用服务器对mysql的表名的大小写敏感要求不一致,经常在出现线上的数据库down到了本地不能运行的情况,贴出一段代码用来批量修改数据库表名大小写. DELIMITER // DROP PROCE ...
- MySQL ALTER命令-修改数据表名或者修改数据表字段
需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令. 删除,添加或修改表字段 如下命令使用了 ALTER 命令及 DROP 子句来删除表的 i 字段: ALTER TABLE ...
- oracle11g创建修改删除表
oracle11g创建修改删除表 我的数据库名字: ORCL 密码:123456 1.模式 2.创建表 3.表约束 4.修改表 5.删除表 1.模式 set oracle_sid=OR ...
- 解决mysql表不能查询修改删除等操作并出现卡死
问题现象1:进程wait卡住 测试环境mysql出现了一个怪表:select查询表卡死,alter修改表卡死,甚至我不想要这个表了,delete.truncate.drop表都卡死卡主了...... ...
- MySQL入门很简单: 4 创建 修改删除表
1. 创建表的方法 1)创建表的语法形式 首先,选择数据库: USE 数据库名: 创建表: CREATE TABLE 表名 (属性名 数据类型 [完整性约束条件], 属性名 数据类型 [完整性约束条件 ...
- MySQL进阶11--DDL数据库定义语言--库创建/修改/删除--表的创建/修改/删除/复制
/*进阶 11 DDL 数据库定义语言 库和表的管理 一:库的管理:创建/修改/删除 二:表的管理:创建/修改/删除 创建: CREATE DATABASE [IF NOT EXISTS] 库名; 修 ...
- mysql (mariadb)表结构添加修改删除方法总结
1,添加表字段 alter table table1 add ptel varchar(100) not Null; alter table table1 add id int unsigned no ...
- Mysql创建修改删除-表
创建表之前要链接到库 例如 库名为 student use student; 连接结束可以查看此库中所有表 show tables; 创建表 create table student( id in ...
随机推荐
- Markdown练习
这是一级标题 这是二级标题 这是三级标题 这是无序列表1 这是无序列表2 有序1 有序2 重点 计网 1. 第一章 第一部分 1.概念.组成.功能和分类 1. 概念 计算机网络是互连的.自治的计算机的 ...
- MySQL学习day3随笔
索引在数据量不大的时候体现不出来,数据很多的时候区别明显 1 select * from app_user where `name`='用户9999';-- 0.053 sec 2 select * ...
- 坐实大数据资源调度框架之王,Yarn为何这么牛
摘要:Yarn的出现伴随着Hadoop的发展,使Hadoop从一个单一的大数据计算引擎,成为大数据的代名词. 本文分享自华为云社区<Yarn为何能坐实资源调度框架之王?>,作者: Java ...
- 2021牛客暑期多校训练营3 J 思维
传送门 J-Counting Triangles_2021牛客暑期多校训练营3 (nowcoder.com) 题目 Goodeat finds an undirected complete graph ...
- jsp第一周作业
环境搭建,运行出来一个JSP页面,显式hello 英文字母表 <%@ page language="java" import="java.util.*" ...
- 计算机系统6-> 计组与体系结构3 | MIPS指令集(中)| MIPS汇编指令与机器表示
上一篇计算机系统5-> 计组与体系结构2 | MIPS指令集(上)| 指令系统从顶层讲解了一个指令集 / 指令系统应当具备哪些特征和工作原理.这一篇就聚焦MIPS指令集(MIPS32),看看其汇 ...
- Go 语言接口及使用接口实现链表插入
@ 目录 1. 接口定义 1.1 空接口 1.2 实现单一接口 1.3 接口多方法实现 2. 多态 2.1 为不同数据类型的实体提供统一的接口 2.2 多接口的实现 3. 系统接口调用 4. 接口嵌套 ...
- Electron结合React和TypeScript进行开发
目录 结合React+TypeScript进行Electron开发 1. electron基本简介 为什么选择electron? 2. 快速上手 2.1 安装React(template为ts) 2. ...
- 复习 - node.js(接口案例)
其实复习一次的作用真实太大了,真的,自从上次ajax开始其实就开始i有点懵懵懂懂的感觉,一直拖想到了node在去回顾一遍,这一次回去复习,ajax已经很熟练了,node之前搞不懂那些原理也顺清楚了好多 ...
- Bugku练习题---MISC---easy_nbt
Bugku练习题---MISC---easy_nbt flag:flag{Do_u_kN0w_nbt?} 解题步骤: 1.观察题目,下载附件 2.通过观察题目描述和压缩包中的文件,发现这个好像是MC的 ...