CASE
ではありません 複数のWHEN...THEN
が必要です 、それはあなたがそれを与えるすべてのデータを処理しなければならないということです。
句の1つを削除すると、穴が残ります。例:
UPDATE partsList SET quantity =
CASE
WHEN partFK = 1 THEN 4
END
WHERE buildFK = 1;
この更新ステートメントでは、parkFK
が2の場合、CASEが入力を処理できないため、更新は失敗します。
where句に別の行を追加してソースデータを制限することができます(例:AND partFK in (1,2)
)、またはELSE
を追加できます ケース式に。
UPDATE partsList SET quantity =
CASE
WHEN partFK = 1 THEN 4
WHEN partFK = 2 THEN 8
ELSE 12
END
WHERE buildFK = 1;
ただし、示したSQLステートメントに基づくと、おそらくより良い方法があります。おそらく、partFKは他のテーブルへの外部キーです。 quantity
の値を取得できますか そこから?