SQL के साथ समस्याओं में से एक अखंडता बाधाओं, विशेष रूप से संदर्भात्मक बाधाओं के लिए इसका खराब स्तर का समर्थन है।
सभी व्यावहारिक उद्देश्यों के लिए आपकी समस्या को SQL बाधाओं का उपयोग करके हल नहीं किया जा सकता है जब तक कि आप किसी तालिका में एक पंक्ति सम्मिलित करने के लिए बाधाओं को अक्षम नहीं करते हैं। कारण यह है कि SQL को एक बार में एक टेबल को अपडेट करने की आवश्यकता होती है और इसलिए जब भी नई पंक्तियाँ डाली जाती हैं तो बाधा का उल्लंघन किया जाना चाहिए। यह SQL की मूलभूत सीमा है और सभी प्रमुख DBMS इससे पीड़ित हैं।
कुछ वर्कअराउंड हैं लेकिन उनमें से कोई भी सही नहीं है। यदि आपके DBMS में उन्हें (उदाहरण के लिए Oracle) है, तो आप DEFERRABLE बाधाओं का उपयोग कर सकते हैं। एक DEFERRABLE बाधा वास्तव में एक बाधा को अक्षम करने का एक आसान तरीका है। या आप ट्रिगर का उपयोग कर सकते हैं, जिसका अर्थ है कि नियम उचित डेटाबेस बाधा के बजाय प्रक्रियात्मक रूप से लागू किया गया है।