Een mogelijke oplossing is om gewoon DROP IF EXISTS te gebruiken voordat u de nieuwe beperking maakt.
ALTER TABLE foo DROP CONSTRAINT IF EXISTS bar;
ALTER TABLE foo ADD CONSTRAINT bar ...;
Lijkt makkelijker dan proberen information_schema of catalogi te doorzoeken, maar kan traag zijn op grote tabellen omdat het altijd de beperking opnieuw creëert.
Edit 2015-07-13:Kev wees er in zijn antwoord op dat mijn oplossing een kort venster creëert wanneer de beperking niet bestaat en niet wordt gehandhaafd. Hoewel dit waar is, kunt u een dergelijk venster vrij gemakkelijk vermijden door beide verklaringen in een transactie te verpakken.