美文网首页
Mysql 给所有表添加字段

Mysql 给所有表添加字段

作者: 念念不忘_2016 | 来源:发表于2020-01-14 10:16 被阅读0次

该操作使用存储过程来实现,直接在数据库管理软件执行即可;

#用来移除一个存储程序。不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程
DROP PROCEDURE IF EXISTS testEndHandle;
DELIMITER $$
 
 CREATE PROCEDURE testEndHandle()
BEGIN
  DECLARE s_tablename VARCHAR(100);
 
 /*显示表的数据库中的所有表
 SELECT table_name FROM information_schema.tables WHERE table_schema='databasename' Order by table_name ;
 */
 
#显示所有
 DECLARE cur_table_structure CURSOR
 FOR 
 SELECT table_name 
 FROM INFORMATION_SCHEMA.TABLES 
 WHERE table_schema = '数据库名称' AND table_name NOT IN (
 SELECT t.table_name  FROM (
     SELECT table_name,column_name FROM information_schema.columns 
     WHERE table_name IN ( 
        SELECT table_name 
        FROM INFORMATION_SCHEMA.TABLES 
        WHERE table_schema = '数据库名称')
     ) t WHERE t.column_name='字段名称' 
 );
 #就是当遍历完结果集之后把done的值设为1
 DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET s_tablename = NULL;
 
 OPEN cur_table_structure;
 
 FETCH cur_table_structure INTO s_tablename;
 
 WHILE ( s_tablename IS NOT NULL) DO
  SET @MyQuery=CONCAT("alter table `",s_tablename,"` add COLUMN `字段名` varchar(128) DEFAULT NULL comment ''字段的注释'");
  PREPARE msql FROM @MyQuery;
  
  EXECUTE msql ;#USING @c; 
   
  FETCH cur_table_structure INTO s_tablename;
  END WHILE;
 CLOSE cur_table_structure;
 
 
END;
 $$
 
 #执行存储过程
 CALL testEndHandle();

参考https://blog.csdn.net/july_young/article/details/88738147

相关文章

网友评论

      本文标题:Mysql 给所有表添加字段

      本文链接:https://www.haomeiwen.com/subject/hxvoactx.html