0
私はPHPでのPDOライブラリを使用していると私はこのようなPostgreSQLの文で生成しています: 「UPDATEのSETをDO」期待通りに動作しない
INSERT INTO production_work (order_id, producer_id, sw)
VALUES (?,?,?)
ON CONFLICT (order_id, producer_id, day)
DO UPDATE SET sw = EXCLUDED.sw + ?
RETURNING ident
とPDO実行するためにパラメータについて(
)ステートメントを私は配列[7172, 10, 1, 1]
を渡しています。
day
パラメータのデフォルト値はnow()
です。その理由は、私が渡していない理由と、ON CONFLICT
の3つのフィールドに一意の制約が設定されているためです。競合がない場合には
競合があるとき、それは正しく、ただし1へsw
列の値を設定することだ、とそのsw
列の値は、この文はsw
列がで終わる実行し、その後の後、現在は0であります2ではなく1の値です。
私は間違っていますか?
興味深いです。だから私は私の例を単純化しました。 swと並んで、私はそれと同じように使用している列がさらに約10あります。更新部分にそれらをすべてリストする必要がありますか? – Gargoyle
はい、更新するすべての列を設定する必要があります。 – klin
ありがとう!私は今夜帰宅するときにこれを試してみる。 – Gargoyle