Bạn có thực sự không có khóa ngoại không? Nên có một cách để khai báo sự kết hợp table1.key -> table2.key này là duy nhất. Điều này sẽ dẫn đến lỗi SQL thông thường khi tạo một cặp mục nhập đã tồn tại. Đây là những gì tôi thích về các phím foraign. Nó rất rõ ràng, bởi vì thông tin về các mục nhập (không được phép) vẫn ở mức cơ sở dữ liệu.
Bạn có một bảng A_B chứa các bài tập phải không? A.id 88 thuộc B.id 99 ... vv?
Và bạn định chèn MỘT Bản ghi A kết hợp với n Bản ghi B? Tại sao không - nếu các giá trị mới là A =99 và B:10, 11, 12, 17, 18, 20
SELECT b_id
FROM A_B
WHERE a_id = 99
AND b_id IN (10, 11, 12, 17, 18, 20);
Điều này sẽ dẫn đến một danh sách các b_id mà bạn không được chèn lại ... HOẶC là một kết quả trống (tất cả các mục nhập đều mới).