废话少说上代码 ,说明都在注释里面 不懂可以留言
DELIMITER $$//自定义终结符 DROP procedure if exists havecolumn$$//先卸载掉过程(以防以前执行过) create procedure havecolumn(tablename char(20),columnname char(20),out _count int)//定义检查字段过程 begin SET _count = ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = tablename AND COLUMN_NAME = columnname AND TABLE_SCHEMA = '数据库' ); END $$//终结过程 DELIMITER ; DELIMITER $$//自定义终结符 DROP procedure if exists userupdate$$//先卸载掉过程 CREATE procedure userupdate()//定义user表相关更新的过程 begin DECLARE _count INT; call havecolumn('user','integral',_count);//检查user表中是否含有integral字段 if _count = 0 then//没有就执行add 语句 ALTER TABLE `user` ADD integral INT DEFAULT 0 COMMENT '积分'; end if; END $$ DELIMITER ; call userupdate();//执行程序过程