[英]Unique constraint across two columns
我有一個名為friends的表,其結構如下:
id
user_id
friend_id
我希望這些行是唯一的,例如:
1, 6, 12
2, 6, 12
會壞! 我是通過以下方式實現的: ALTER TABLE friends ADD UNIQUE INDEX user_id_friend_id (user_id, friend_id);
但我也想下面來是不可能的
1, 6, 12
2, 12, 6
我怎么做? 我嘗試做同樣的聲明,但是字段顛倒了,但是沒有用...有什么想法嗎?
您可以使用觸發器來確保user_id <= friend_id
,這具有唯一性約束將實現您想要的。 您將需要一個插入和更新觸發器,如下所示:
Create Trigger
Friends_ins_check
Before Insert On
Friends
For Each Row
Begin
If new.user_id > new.friend_id Then
Set @temp = new.user_id;
Set new.user_id = new.friend_id;
Set new.friend_id = @temp;
End If;
End
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.