【SQL】UPDATEで全ての列(全カラム)を更新する方法

このページでは、データを更新するSQLであるUPDATE文を使って、全ての列(前っカラム)を更新する方法を紹介しております。

UPDATE文のサンプルは↓で多数紹介していますので参考にしてください。
>>【SQL】UPDATE文の書き方:サンプル多数あり

UPDATE文の基本構文

全列の更新の前に、簡単にUPDATE文の使い方をおさらいします。

UPDATE文の基本構文は次の通りです。

UPDATE テーブル名 SET 列名 = 値[,列名 = 値] [WHERE 条件];

UPDATE文では、更新したい列だけ指定して、更新するのが一般的です。

UPDATE tab1 SET col2 = 'A' WHERE col1 = '00001';

複数の列を指定する場合には、カンマ区切りで列と値を追加します。

UPDATE tab1 SET col2 = 'A',col3 = 'C' WHERE col1 = '00001';

全列の値を更新するUPDATE文

全項目を一度に更新するときは、SET句に全ての列と値を指定する必要があります。

次のUPDATE文のように「col4 = ‘D’」以降も列があれば、全て列挙する必要があります。

UPDATE tab1 SET col2 = 'A',col3 = 'C',col4 = 'D'・・・
WHERE col1 = '00001';

プログラムで実装する場合には、初めから全ての列を列挙しておき、バインド変数で、値を指定するようにすることもできます。

変更のない値については、変更前の値をセットします。

UPDATE
    tab1 
SET
    col2 = :col2
    ,col3 = :col3
    ,col4 = :col4
WHERE
     col1 = '00001';

プログラム内で、UPDATE文を作るときに、SET句を動的に、変更のあったものだけ生成するという方法もあります。

また、全ての項目を更新するのであれば、一度データをDELETEし、INSERTするという方法もあります。

プログラムの仕様や条件に応じて使い分ける必要があります。

まとめ

UPDATE文で全ての列を更新するには、SET句に全てのを指定する必要があります。

SET句でバインド変数を使う方法や動的にSQLを生成するなど、条件に合わせて対処する必要があります。

この他にも、UPDATE文の様々な書き方を解説しております。
詳しくは「【SQL】UPDATE文の書き方:サンプル多数あり」で解説しているのでぜひ参考にしてください。