DROP PROCEDURE IF EXISTS addColumnForAllTab;
delimiter //
CREATE PROCEDURE addColumnForAllTab ( )
BEGIN
DECLARE oneAdd VARCHAR ( 255 ) DEFAULT '';
DECLARE done INT DEFAULT 0;
DECLARE curl CURSOR FOR SELECT table_name FROM information_schema.TABLES WHERE table_schema = 'taotao';
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN curl;
REPEAT
FETCH curl INTO oneAdd;
IF NOT done THEN
-- SET @tablename = concat("'",oneAdd,"'");
-- IF
-- EXISTS ( SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'taotao' AND TABLE_NAME = @tablename AND COLUMN_NAME = 'hello' ) THEN
-- SET @drop1 = concat( 'alter table ', oneAdd, " DROP COLUMN hello" );
-- PREPARE stmt1
-- FROM @drop1;
-- EXECUTE stmt1;
-- END IF;
SET @SQL = concat( 'alter table ', oneAdd, " add hello int(11) COMMENT '你好'" );
PREPARE stmt
FROM
@SQL;
EXECUTE stmt;
END IF;
UNTIL done
END REPEAT;
CLOSE curl;
END;
CALL addColumnForAllTab ( );
-- 注:在base_column_list中处理的select不查询hello,所以hello暂时必须作为表中最后一个字段
DROP PROCEDURE IF EXISTS add_col;
delimiter //
CREATE PROCEDURE add_col ( )
BEGIN
IF EXISTS ( SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'taotao' AND TABLE_NAME = 'tb_content' AND COLUMN_NAME = 'hello' ) THEN
ALTER TABLE tb_content DROP COLUMN hello;
END IF;
ALTER TABLE tb_content ADD COLUMN hello VARCHAR ( 20 ) CHARACTER
SET utf8 COLLATE utf8_general_ci DEFAULT 1;
END;
CALL add_col ( );