2017-04-09 74 views
0

我知道有一种方法可以使用唯一的密钥来完成此结果,例如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查询。

+0

请包括样本数据,然后插入条件应该发生什么。 –

+0

我已经添加了一些示例数据。 –

+0

从样本数据看来,组合('User_ID1,User_ID2')应该是唯一的。 –

回答

1

请参阅附加图像如何创建一个唯一的密钥。

enter image description here

+0

噢xD ...谢谢。 –

相关问题