ページのトップに戻る
Symfoware Server SQLビギナーズガイド

3.2.7 表のすべての行を更新する

表のすべての行を更新するには、探索条件を省略します。もちろん、キーワードの“WHERE”も指定しません。

図3.12 別の列の値を使用した更新の例”で説明した例を思い出してください。この例では、出荷データが発生したときに、出荷数量と前回出荷の値を更新しました。しかし、その増減は設定していませんでした。ここで、増減の値を最新の状態に更新することにします。この例を以下に示します。

出荷表のすべての行について増減の値を、出荷数量から前回出荷を引いた値で更新します。

UPDATE 在庫管理.出荷表 SET 増減 = 出荷数量 - 前回出荷
                                                        ↑
                                                        |
                                                 WHEREは指定しません。

図3.14 表のすべての行を更新する例

備考.値が変わらない行についても元と同じ値に更新しています。


この例では、すべての行について増減の値を更新していますが、前回の更新後に、出荷データが発生していない行については、実際の値は変わりません。この行についてもデータの更新は行われています。すなわち、元の値と同じ値に更新しているのです。表全体の行数に対して、このような行の比率が大きい場合には、なんらかの方法で更新が必要な行を管理して、必要な行だけを更新した方が効率がよくなります。