एक संभावित समाधान यह है कि नई बाधा उत्पन्न करने से पहले केवल DROP IF EXISTS का उपयोग करें।
ALTER TABLE foo DROP CONSTRAINT IF EXISTS bar;
ALTER TABLE foo ADD CONSTRAINT bar ...;
जानकारी_स्कीमा या कैटलॉग को क्वेरी करने की कोशिश करने की तुलना में आसान लगता है, लेकिन विशाल टेबल पर धीमा हो सकता है क्योंकि यह हमेशा बाधा को फिर से बनाता है।
संपादित करें 2015-07-13:केव ने अपने जवाब में बताया कि मेरा समाधान एक छोटी खिड़की बनाता है जब बाधा मौजूद नहीं होती है और इसे लागू नहीं किया जा रहा है। हालांकि यह सच है, आप लेन-देन में दोनों बयानों को लपेटकर ऐसी खिड़की से आसानी से बच सकते हैं।