Solusi yang mungkin adalah dengan menggunakan DROP IF EXISTS sebelum membuat batasan baru.
ALTER TABLE foo DROP CONSTRAINT IF EXISTS bar;
ALTER TABLE foo ADD CONSTRAINT bar ...;
Tampaknya lebih mudah daripada mencoba menanyakan information_schema atau katalog, tetapi mungkin lambat pada tabel besar karena selalu membuat ulang batasan.
Sunting 2015-07-13:Kev menunjukkan dalam jawabannya bahwa solusi saya membuat jendela pendek ketika batasan tidak ada dan tidak ditegakkan. Meskipun ini benar, Anda dapat menghindari jendela seperti itu dengan cukup mudah dengan membungkus kedua pernyataan dalam suatu transaksi.