Ràng buộc là những gì cơ sở dữ liệu sử dụng để bảo vệ bản thân khỏi các ứng dụng sai lầm, không phải từ người dùng.
Điều đó có nghĩa là ứng dụng phải ghi lại các vi phạm ràng buộc và có thể dọn dẹp để trình bày cho người dùng. Tôi coi một ứng dụng không làm được điều đó là thiếu sót theo một cách nào đó.
Tôi nói 'có thể' vì ứng dụng của bạn (ít nhất là đối với trường hợp này) sẽ không bao giờ thấy điều đó xảy ra. Nó gần như chắc chắn sẽ sử dụng điều khiển lựa chọn giới hạn thả xuống cho một cái gì đó tương tự. Nếu nó sử dụng một hộp tổ hợp hoặc (sốc, kinh dị) một trường nhập văn bản định dạng tự do, nó sẽ cần được xác định lại.
Điều đó có nghĩa là vi phạm sẽ không bao giờ xảy ra, tất nhiên, trừ khi ứng dụng và ràng buộc không đồng bộ vào một thời điểm nào đó. Nhưng đó là điều cần được lưu ý trong quá trình thử nghiệm, rất lâu trước khi khách hàng có thể chạm vào ứng dụng của bạn.
Để trả lời câu hỏi thực tế của bạn, không thể thay đổi thông báo xuất phát từ Oracle cho các vi phạm ràng buộc. Điều tốt nhất bạn có thể làm là đặt tên cho các ràng buộc của mình một cách thông minh để nó có thể có ý nghĩa đối với người dùng cuối.
Nhưng tôi vẫn khẳng định rằng việc trình bày các vấn đề này với người dùng là trách nhiệm của lớp ứng dụng, không phải lớp cơ sở dữ liệu.