1
我有一個朋友表,有'ID','朋友(INTEGER)'和'用戶(INTEGER)'字段。避免重複在mysql插入
用戶和朋友之間存在朋友關係。 即
id user friend
6 22 45
7 45 22
是同一個朋友關係,應該被視爲重複記錄。
我要輸入一大堆的一次記錄,所以是這樣的:
INSERT INTO friends (user, friend) VALUES(22, 34), (22, 76), (22, 567)...;
在這種情況下,我可以輕鬆地使用忽略以避免進入重複(22,34)項(如果( 22,34)已經存在),但是如果(34,22)已經存在,是否有辦法避免輸入(22,34),因爲這是相同的關係。
最簡單的方法:在插入之前,總是對您的關係對進行排序:'(22,45) - >(22,45); (45,22) - >(22,45);'並在兩列中保持唯一的鍵約束。 – dognose 2015-04-05 11:06:44
@satishrajak你沒有讀過這個問題,是嗎? – dognose 2015-04-05 11:07:47
您可以添加一個插入前觸發器來檢查密鑰的朋友列,並在關係已存在的情況下中止插入。但是,您想要設置此代碼的方式我可以稱呼您爲我的朋友,並且您可能不同意。所以你的第二次插入(45,22)更多的是這種友誼的確認,你似乎只想跳過。 – 2015-04-06 02:39:52