次の hsqldb テーブルがあり、UUID を自動インクリメント ID にマップします。
SHORT_ID (BIG INT, PK, auto incremented) | UUID (VARCHAR, unique)
コマンドを作成します。
CREATE TABLE mytable (SHORT_ID BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, UUID VARCHAR(36) UNIQUE)
新しいペアを同時に追加するには、atomicMERGE INTO
ステートメントを使用します。したがって、私の(準備された)ステートメントは次のようになります。
MERGE INTO mytable USING (VALUES(CAST(? AS VARCHAR(36)))) AS v(x) ON mytable.UUID = v.x WHEN NOT MATCHED THEN INSERT VALUES v.x
ステートメントを実行すると(プレースホルダーを正しく設定すると)、常に
Caused by: org.hsqldb.HsqlException: row column count mismatch
ここで何がうまくいかないのか、ヒントを教えてください。
前もって感謝します。