Вы можете получить информацию о существовании поля ...
SELECT *
FROM information_schema.COLUMNS
WHERE
TABLE_SCHEMA = 'your_db_name'
AND TABLE_NAME = 'your_table_name'
AND COLUMN_NAME = 'your_column_name'
... но вы не можете добавить ALTER
утверждение в зависимости от результата.SQL просто не может этого сделать.
Место для такой логики - либо в хранимой процедуре, либо в языке приложения.