jdbcのINSERTでちょっとハマった。

データペースtest_dbのテーブルtest_tableが以下のようなレコードで構成されている。

test_db=> \d test_table;
     Table "public.test_table"
Column |     Type     | Modifiers
-------+--------------+-----------
ID     | integer      |
STR    | character(1) |

このテーブルに対して以下のような命令をJavaから実行したら怒られた。

String sql = "INSERT INTO test_table ('ID','STR') VALUES ('0','a');
stmt.executeUpdate(sql);

なんか、IDの周辺が変ですって言われてた。
以下、試行錯誤を繰り返す。

ダブルクオテーションで括ってみたり。

String sql = "INSERT INTO test_table ("ID","STR") VALUES ('0','a');

括るのやめてみたり。

String sql = "INSERT INTO test_table (ID,STR) VALUES ('0','a');

ダメだった。

結局

String sql = "INSERT INTO test_table VALUES ('0','a');

省略したら、うまくいった。