5
3

More than 5 years have passed since last update.

SQLのUPDATE文にVALUESは使えない

Posted at

私はSQLが苦手です。毎回、insert文、update文を調べているので少し整理して覚えないといけません。今日は下記のようなミスをしていました。

name age
varchar(80) integer

postgresでupdateを行おうとしていましたが、insertの文法と混ざってしまいvaluesを使っていました。大分、頭がごちゃごちゃしていたのでなかなか気が付きませんでした。

-- エラーが出る間違いの例
UPDATE
        test
    SET
        (
            name
            ,age
        )
    VALUES
        (
            'mario'
            ,13
        );

VALUESはinsertで使うのです。postgresでupdateを行うには2通りの書き方があります。下記のとおりです。

-- 順にセットしていく
UPDATE
        test
    SET
        name = 'mario'
        ,age = 13;
-- カラムと値を分ける
UPDATE
        test
    SET
        (
            name
            ,age
        ) = (
            'mario'
            ,13
        );

ちなみに2つ目の文法はMysqlでは使えないみたいです。1つ目を使うようにした方が良さそうです。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3