DROP PROCEDURE IF EXISTS schema_change$$ DELIMITER $$ CREATE PROCEDURE schema_change() BEGIN IF EXISTS (SELECT * FROM information_schema.columns WHERE table_name = 'table' AND column_name = 'column') then ALTER TABLE table DROP COLUMN `column`; END$$ DELIMITER ; CALL schema_change(); DROP PROCEDURE IF EXISTS schema_change;
Метод также игнорирует комментарии и обрабатывает код, завернутый в комментарий, и если в тексте комментария будет символ ";", то комментарий будет разбит на части и "скормлен" mySQL, и без открывающих/закрывающих символов комментария, это уже не будет комментарием, из-за чего опять-таки возникнет ошибка синтаксиса.
P.S. Здесь вроде была тема по обсуждению проблем iCMS 2.x, но что-то не нашел. Извините, если создал лишнюю тему.