我有一张桌子:
id, SourceA_id, SourceB_id, data
数据可能来自sourceA或sourceB ID。我需要确定是否已经存在来自其他源的相同数据,然后使用correspoding sourceid更新所有行。这是一个例子:
id, SourceA_id, SourceB_id, data
1, null, 55, apple
2, null, 55, banana
3, null, 77, orange
现在添加了新信息
SourceA_id, data
33, apple
我现在想要更新id为1的行,因为它与新数据匹配
id, SourceA_id, SourceB_id, data
1, 33, 55, apple
2, null, 55, banana
3, null, 77, orange
它还应该更新与匹配行的SourceB_id匹配的所有行:
id, SourceA_id, SourceB_id, data
1, 33, 55, apple
2, 33, 55, banana
3, null, 77, orange
我不介意它是一步还是两步。
我知道它应该使用INSERT ... ON DUPLICATE KEY UPDATE
和RETURNING