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();

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM