插入MySQL表或更新(如果存在没有唯一的密钥)
问题描述:
我知道有一种方法可以使用唯一的密钥来完成此结果,例如ID,但正如您在下例中可以看到的,这不起作用,因为我没有一个唯一的密钥。
插入MySQL表或更新(如果存在没有唯一的密钥)
INSERT INTO User_Status (User_ID1, User_ID2, Status) VALUES(?, ?, ?) ON DUPLICATE KEY UPDATE Status = ?
的事情是我没有对这个TABEL一个唯一的ID,但有3个电流选项。 1)两个用户一起没有一个状态,换句话说:将其插入表格中。 2)用户1与用户2有一个状态(1-2组合,但IS独特)。 3)与情况2相同,但转向:用户2与用户1具有一个状态(再次,这种组合是独特的)。
反正有更新如果它已经存在这个选项?
样本数据:
User_ID1 User_ID2 Status
1 4 has_send_request
4 1 has_received_request
4 2 friends
2 4 friends
比方说,我想更新的用户,从1-4到has_send_request好友的状态。在这种情况下,我可以做一个正常的更新查询。但是,如果我想要更新用户2-4的状态,我需要做一个INSERT查询,而不是一个UPDATE查询。
请包括样本数据,然后插入条件应该发生什么。 –
我已经添加了一些示例数据。 –
从样本数据看来,组合('User_ID1,User_ID2')应该是唯一的。 –