私は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つ目を使うようにした方が良さそうです。