PostgreSQLのUPDATE文がバージョンによって違う件
PostgreSQLにてUPDATE文を使用する際にはバージョンによってリスト構文で書けない場合があったので備忘録。
PostgreSQL8系
UPDATE table名 SET col1=val1,cal2=val2 WHERE col3='foo';
PostgreSQL9系
PostgreSQL8と同様に書けるが以下のようにリストでも書ける。
UPDATE table名 SET (col1,col2) = (val1,val2) WHERE col3='foo';
つまり、バージョンを意識せずUPDATE文を書く場合は8系で書いておくべきということ*1。
*1:上記のPostgreSQLの公式サイトのリファレンスでは8.2からリスト構文で書けるように見えるが、この前実際にsyntax errorになったのは8.3だったような気がするのはなぜ?