Възможно решение е просто да използвате DROP IF EXISTS, преди да създадете новото ограничение.
ALTER TABLE foo DROP CONSTRAINT IF EXISTS bar;
ALTER TABLE foo ADD CONSTRAINT bar ...;
Изглежда по-лесно, отколкото да се опитвате да потърсите information_schema или каталози, но може да е бавно на огромни таблици, тъй като винаги пресъздава ограничението.
Редактиране 2015-07-13:Кев посочи в отговора си, че моето решение създава кратък прозорец, когато ограничението не съществува и не се прилага. Въпреки че това е вярно, можете да избегнете такъв прозорец доста лесно, като обвиете и двата оператора в транзакция.