Sql 以原子方式递增整数,并根据结果更新另一列
我有下表 工作 我在多线程环境中运行此查询,因此我必须小心操作不会相互影响 问题: 在一个SQL命令中(如果可能),我想:Sql 以原子方式递增整数,并根据结果更新另一列,sql,Sql,我有下表 工作 我在多线程环境中运行此查询,因此我必须小心操作不会相互影响 问题: 在一个SQL命令中(如果可能),我想: 增加“成品零件” 如果完工零件=总零件,则将“状态”设置为“就绪” 仅MySQL较短版本: UPDATE foo_table SET FINISHED_PARTS = FINISHED_PARTS + 1, STATUS = IF(FINISHED_PARTS + 1 = TOTAL_PARTS, 'ready', STATUS) WHERE ... 谢谢
UPDATE foo_table
SET
FINISHED_PARTS = FINISHED_PARTS + 1,
STATUS = IF(FINISHED_PARTS + 1 = TOTAL_PARTS, 'ready', STATUS)
WHERE ...
谢谢-我正在使用Postgres,应该已经指定了。我现在正在试验,会让你知道什么最终会起作用。谢谢
UPDATE foo_table
SET
FINISHED_PARTS = FINISHED_PARTS + 1,
STATUS = CASE WHEN FINISHED_PARTS + 1 = TOTAL_PARTS THEN 'ready' ELSE STATUS END
WHERE ...
UPDATE foo_table
SET
FINISHED_PARTS = FINISHED_PARTS + 1,
STATUS = IF(FINISHED_PARTS + 1 = TOTAL_PARTS, 'ready', STATUS)
WHERE ...