PostgreSQLエラー「ERROR: INSERT has more expressions than target columns」の原因と解決方法
PostgreSQLでInsertを実行した時に、
ERROR: INSERT has more expressions than target columns
といったエラーが出ることがある。この場合、Insertを行うためのSQLに誤りがある可能性がある。
《エラー出るSQLの例》
insert into nobuneko_table (
nobuneko_year,
nobuneko_title
) values (
2011,
'猫大好き',
'温泉も好きです'
);
上記例の場合、「nobuneko_year」と「nobuneko_title」という合計2つのカラムに対してValueとしてセットした項目の数がカラムの数よりも多い3つとなっているためにエラーとなっている。
このエラーを解決するには、カラムの数と、そのカラムに格納するValue値それぞれの数を一致させればよい。
《エラーの出ないSQLの例》
insert into nobuneko_table (
nobuneko_year,
nobuneko_title,
nobuneko_comment
) values (
2011,
'猫大好き',
'温泉も好きです'
);