Một trong những vấn đề với SQL là mức độ hỗ trợ kém đối với các ràng buộc toàn vẹn, đặc biệt là các ràng buộc tham chiếu.
Đối với tất cả các mục đích thực tế, vấn đề của bạn không thể được giải quyết bằng cách sử dụng các ràng buộc SQL trừ khi bạn tắt các ràng buộc khi bạn muốn chèn một hàng vào bảng. Lý do là SQL yêu cầu các bảng phải được cập nhật lần lượt và do đó ràng buộc phải bị vi phạm bất cứ khi nào các hàng mới được chèn vào. Đây là một hạn chế cơ bản của SQL và tất cả các DBMS chính đều mắc phải nó.
Có một số cách giải quyết nhưng không có cách nào trong số chúng là hoàn hảo. Bạn có thể sử dụng các ràng buộc DEFERRABLE nếu DBMS của bạn có chúng (ví dụ như Oracle). Ràng buộc DEFERRABLE thực sự chỉ là một cách dễ dàng để vô hiệu hóa một ràng buộc. Hoặc bạn có thể sử dụng trình kích hoạt, có nghĩa là quy tắc được thực thi theo thủ tục thay vì thông qua ràng buộc cơ sở dữ liệu thích hợp.