この素晴らしい投稿に従ってアップサートを実装していました: Insert, on duplicate update in PostgreSQL? これはpsqlで本当にうまく機能します。ただし、テストに使用する hsqldb に同じクエリを実行することはできません。私のSQLは次のようになります:
UPDATE account set name = ?, email = ?, type = ?, regts = ?, dao_updated = ? WHERE id = ?;
INSERT INTO account (id, name, email, type, regts, dao_created,dao_updated) SELECT ?,?,?,?,?,?,? WHERE NOT EXISTS (SELECT 1 FROM account WHERE id = ? );
エラーメッセージが表示されます:
Caused by: java.sql.SQLSyntaxErrorException: unexpected token: INSERT
at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCPreparedStatement.<init>(Unknown Source)
at org.hsqldb.jdbc.JDBCConnection.prepareStatement(Unknown Source)
これは hsqldb の制限ですか、それとも何か間違っていますか?
前もって感謝します レオン