Mysql
如何強制我的複合鍵列在 MySQL 中彼此不相等?
我有一個數據透視表,其中有一個由引用同一個表的兩列組成的複合鍵。列是
requester_id
並且addressee_id
它們都引用表中的id
欄位users
。我正在努力確保不會發生這樣的事情:requester_id addressee_id created_at 1 1 2020-08-09 18:40:23
我還添加了一個索引表達式,以確保也只能有一對唯一的 ID:
alter table `user_relationships` add unique index `unique_relationships_index` ((least(requester_id,addressee_id)), (greatest(requester_id,addressee_id)))
避免擁有
1|2
and2|1
。
MySQL-8.0.16 強制檢查約束
alter table user_relationships add check (requester_id <> addressee_id)
然後:
insert into user_relationships values (3,3,NOW())
檢查約束“user_relationships_chk_1”被違反。