別のテーブルの 1 つの値が別のテーブルと一致するが、値自体がキーではない場合、MySQL で INSERT または UPDATE を防ぐにはどうすればよいでしょうか? 答えは FOREIGN KEY 制約でなければなりませんが、それが複数の列と非キー フィールドでどのように機能するか正確にはわかりません。
私自身の状況は次のとおりです。
次の値を持つこのテーブル USERDATA があるとします。
ID | USER_ID | UUID
1 29 aaa
2 29 bbb
3 30 ccc
このテーブルは、INSERT の後にこれらの値を持つ RELATIONS です。ここで、userdata_uuid は uuid を参照し、receiver_id は user_id を参照します。
ID | USERDATA_UUID | RECEIVER_ID
1 aaa 29
2 aaa 30
3 bbb 29
4 bbb 30
5 ccc 29
6 ccc 30
ユーザーが自分のユーザーデータと関係を持っていることを示す挿入を防ぐにはどうすればよいですか? このデータを使用すると、RELATIONS で INSERT を実行した後の望ましい結果は次のようになります。
ID | USERDATA_UUID | RECEIVER_ID
1 aaa 30
2 bbb 30
3 ccc 29
これが理にかなっていることを願っています、ありがとう。