批量操作数据库的多个表新增字段

Posted 鮀城小帅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批量操作数据库的多个表新增字段相关的知识,希望对你有一定的参考价值。

DROP PROCEDURE IF EXISTS testEndHandle;
DELIMITER $$
 CREATE PROCEDURE testEndHandle()
BEGIN
  DECLARE s_tablename VARCHAR(100);
 DECLARE cur_table_structure CURSOR
 FOR 
 SELECT table_name 
 FROM INFORMATION_SCHEMA.TABLES 
 -- table_schema 是数据库名  
 WHERE table_schema = 'book' AND table_name LIKE "y_%";
 DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET s_tablename = NULL;
 OPEN cur_table_structure;
 FETCH cur_table_structure INTO s_tablename;
 label:WHILE ( s_tablename IS NOT NULL) DO
--  SET @MyQuery=CONCAT("alter table `",s_tablename,"` add COLUMN `create_by` varchar(255) COMMENT '由谁创建'");
--  SET @MyQuery=CONCAT("alter table `",s_tablename,"` add COLUMN `create_time` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '添加时间_时间戳'");
--  SET @MyQuery=CONCAT("alter table `",s_tablename,"` add COLUMN `update_by` varchar(255) COMMENT '由谁修改'");
--  SET @MyQuery=CONCAT("alter table `",s_tablename,"` add COLUMN `update_time` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间_时间戳'");
--  SET @MyQuery=CONCAT("alter table `",s_tablename,"` modify COLUMN `update_time_stamp` datetime(0) COMMENT '修改时间_时间戳'"); 
SET @MyQuery=CONCAT("alter table `",s_tablename,"` add COLUMN `remark` varchar(255) COMMENT '更新备注'");
  PREPARE msql FROM @MyQuery;
  EXECUTE msql ;
    
  FETCH cur_table_structure INTO s_tablename;
  END WHILE label;
 CLOSE cur_table_structure;
END;
CALL testEndHandle();

以上是关于批量操作数据库的多个表新增字段的主要内容,如果未能解决你的问题,请参考以下文章

怎么使用SQL语句批量删除多个表的相同字段

oracle 如何实现对单个表批量更新

MYSQL怎么批量导入多个excel文件,字段都是对应的

mybatis 怎么批量更新操作

多次删除新增表后怎么恢复数据 oracle

Laravel 数据透视表批量插入多个字段