使用文章“使用轻量级事务”中的示例,此类事务的示例如下所示:
UPDATE cycling.cyclist_name
SET firstname = 'Roxane'
WHERE id = 4647f6d3-7bd2-4085-8d6c-1229351b5498
IF firstname = 'Roxxane';
这和替换有什么区别 IF
与 WHERE
,例如:
UPDATE cycling.cyclist_name
SET firstname = 'Roxane'
WHERE id = 4647f6d3-7bd2-4085-8d6c-1229351b5498
AND firstname = 'Roxxane';
我猜第二个并不是在一个步骤中进行读写,而是首先根据位置进行选择,然后应用更新,而第一个在查询运行时阻止其他进程写入db。
1条答案
按热度按时间au9on6nz1#
如果来自两个不同客户端的并发更新,第一个查询将确保一次只应用一个客户端(假设不使用非串行一致性),但是对于第二个更新,这不是真的。看看这个。