我有一个表,它在类型、entityId、userid上都有组合键。现在出于某种原因我想要修改表记录。使用更新记录时,update语句会产生类似重复键的错误。
例如,我的查询就像-
UPDATE iap SET type = 'tour', entityId = 3 WHERE type = 'bundle' AND
entityId = 2 但是有了update语句,它就会发现用户已经有了update和entityID是相同的,这是我们想要更新的。现在,在这种情况下,我想用类型bundle删除该记录,因为我希望所有带有id 2的包都变成具有id 3的回车。因此,如果使用id 3的旅游存在,那么我只想删除带有id 2的包,而不需要更新。
有什么可能的疑问吗?
发布于 2019-05-30 10:28:26
尝尝这个。
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_iap AS (SELECT id, user_id, type, entityId FROM iap where type='tour' AND
entityId = 3);
DELETE from iap where type='bundle' AND entityId = 2 AND EXISTS (SELECT 1 FROM tmp_iap Where tmp_iap.user_id = iap.user_id)如果有任何重要的数据,请先备份。
https://stackoverflow.com/questions/56375891
复制相似问题