DROP PROCEDURE IF EXISTS TEST_UNIQUE;
DELIMITER $
CREATE PROCEDURE TEST_UNIQUE ()
BEGIN
DECLARE cnt INT;
SELECT COUNT(*) INTO cnt
FROM
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
TABLE_NAME = 'test' AND CONSTRAINT_NAME = 'test_unique_name';
IF(cnt = 0) THEN
ALTER TABLE test ADD CONSTRAINT test_unique_name UNIQUE KEY(a,b,c,d);
END IF;
END;$
DELIMITER ;
CALL TEST_UNIQUE();
COMMIT;