zoukankan      html  css  js  c++  java
  • 84、给mysql数据库中的所有表批量添加字段

    DROP PROCEDURE IF EXISTS addColumn;
    DELIMITER $$
     
     CREATE PROCEDURE addColumn()
    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 
     -- test = 数据库名称
     WHERE table_schema = 'you db' 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 = 'ag_nacos')
       ) t WHERE t.column_name='object_name' 
     );
     
     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 `age` INT COMMENT '年龄'");
      PREPARE msql FROM @MyQuery;
      
      EXECUTE msql ;#USING @c; 
       
      FETCH cur_table_structure INTO s_tablename;
      END WHILE;
     CLOSE cur_table_structure;
     
     
    END;
     $$
     
     #执行存储过程
     CALL addColumn();
    

      

  • 相关阅读:
    Objective-C中的封装、继承、多态、分类
    C语言知识总结(5)
    C语言知识总结(4)
    C语言知识总结(3)
    C语言知识总结(2)
    C语言知识总结(1)
    H5-定位
    H5——浮动及清浮动
    H5基础标签
    H5盒模型基础
  • 原文地址:https://www.cnblogs.com/gfbzs/p/14741531.html
Copyright © 2011-2022 走看看