-- 先在数据库中创建一个存储过程 DELIMITER //
-- 先在数据库中创建一个存储过程
DELIMITER //
CREATE PROCEDURE AddBizEToTables()
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE tableName VARCHAR(255);
DECLARE cur CURSOR FOR
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'tmp002';
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN cur;
read_loop: LOOP
FETCH cur INTO tableName;
IF done THEN
LEAVE read_loop;
END IF;
-- 为每个表添加 biz_e 字段
SET @alterTableSQL = CONCAT('ALTER TABLE ', tableName, ' ADD COLUMN biz_eid VARCHAR(255);');
PREPARE stmt FROM @alterTableSQL;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END LOOP;
CLOSE cur;
END //
DELIMITER ;
请记得将'你的数据库名'替换为实际的数据库名称。这个存储过程会遍历数据库中的所有表,并为每个表添加一个名为biz_e的VARCHAR(255)类型字段。
然后,你可以调用这个存储过程:
CALL AddBizEToTables();
同样,请在执行这些操作之前确保做好数据库备份,以防万一。
标签:cur,数据库,tableName,varchar255,biz,MySQL,done,DECLARE From: https://blog.51cto.com/janeyork/8982817