MySQL drop column is exists

Sometimes we need to drop column from a database, developers write script to drop the column by following:

ALTER TABLE <table>DROP COLUMN <column>
But if the column is already dropped from the database it will through a error as the column is no longer exist. We want to do is to drop a table or column, but only if it exists
Unfortunately there is an IF EXISTS clause for CREATE TABLE in MySQL but no one for ALTER TABLE ADD/DROP COLUMN.

DROP TABLE IF EXISTS <table>;
CREATE TABLE <table>
Solution : Creating following temporary stored procedure would resolve the problem in MySQL 5+:

delimiter //
CREATE PROCEDURE drop_column_sp() BEGIN
IF EXISTS(
SELECT * FROM information_schema.COLUMNS
WHERE table_name = '<table>' AND column_name = '<column>'
and table_schema ='<schema>'
)
THEN
ALTER TABLE <table> DROP COLUMN <column>;
END IF;
END;
//
delimiter ';'
CALL drop_column_sp(); DROP PROCEDURE drop_column_sp;
posted @ 2014-02-25 12:15  sxplus  阅读(4345)  评论(0编辑  收藏  举报