MySQL 循环遍历表 更改表结构

luallen 2013-07-17 10:24:37
数据库中的表名都是“DPC_”开头,也有些不是,
怎样查询数据库中所有带“DPC_”开头的表,并且将这些表新增一个名为“DID”的字段
...全文
205 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2013-07-17
  • 打赏
  • 举报
回复
将这些表新增一个名为“DID”的字段 通过SHOW TABLES得到所有表名,复制到EXCEL,在EXCEL中利用公式生成如下, alter table DPC_table1 add DID varchar(20); alter table DPC_table2 add DID varchar(20); alter table DPC_table3 add DID varchar(20); alter table DPC_table4 add DID varchar(20); alter table DPC_table5 add DID varchar(20); alter table DPC_table6 add DID varchar(20); alter table DPC_table7 add DID varchar(20); alter table DPC_table8 add DID varchar(20); alter table DPC_table9 add DID varchar(20); alter table DPC_table10 add DID varchar(20); alter table DPC_table11 add DID varchar(20); alter table DPC_table12 add DID varchar(20); alter table DPC_table13 add DID varchar(20); alter table DPC_table14 add DID varchar(20); alter table DPC_table15 add DID varchar(20); alter table DPC_table16 add DID varchar(20); alter table DPC_table17 add DID varchar(20); alter table DPC_table18 add DID varchar(20); alter table DPC_table19 add DID varchar(20); alter table DPC_table20 add DID varchar(20); alter table DPC_table21 add DID varchar(20); alter table DPC_table22 add DID varchar(20); alter table DPC_table23 add DID varchar(20); alter table DPC_table24 add DID varchar(20); alter table DPC_table25 add DID varchar(20); alter table DPC_table26 add DID varchar(20); alter table DPC_table27 add DID varchar(20); alter table DPC_table28 add DID varchar(20);
WWWWA 2013-07-17
  • 打赏
  • 举报
回复
假设MYSQL 5以上,示例 delimiter $$ creaTE PROCEDURE test() BEGIN DECLARE done INT DEFAULT 0; DECLARE v_a INT; DECLARE cur1 CURSOR FOR SELECT `TABLE_NAME` FROM `information_schema`.`TABLES` a WHERE a.`TABLE_NAME` LIKE 'DPC_%'; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; OPEN cur1; FETCH cur1 INTO v_a; WHILE done=0 DO SET @sqlstmt=CONCAT('alter table ',v_a,' add did int '); PREPARE stmt1 FROM @sqlstmt; EXECUTE stmt1 ; DEALLOCATE PREPARE stmt1; FETCH cur1 INTO v_a; END WHILE; END$$ delimiter ;
ACMAIN_CHM 2013-07-17
  • 打赏
  • 举报
回复
怎样查询数据库中所有带“DPC_”开头的表 show tables like 'DPC\_%';
rucypli 2013-07-17
  • 打赏
  • 举报
回复
mysql> select group_concat('alter table ',table_name,' add a int' SEPARATOR ';') from information_schema.tables where table_name like 'DPC\_%'; +-------------------------------------------------------------------------------------+ | group_concat('alter table ',table_name,' add a int' SEPARATOR ';') | +-------------------------------------------------------------------------------------+ | alter table DPC_1 add a int;alter table DPC_2 add a int;alter table DPC_3 add a int | +-------------------------------------------------------------------------------------+

56,675

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧