0

別のテーブルの 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

これが理にかなっていることを願っています、ありがとう。

4

1 に答える 1