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