je la table hsqldb suivante, où je la carte UUID aux ID incrémentée auto:atomique INSERT/SELECT dans HSQLDB
SHORT_ID (BIG INT, PK, auto incremented) | UUID (VARCHAR, unique)
Créer commande:
CREATE TABLE mytable (SHORT_ID BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, UUID VARCHAR(36) UNIQUE)
Pour ajouter de nouvelles paires simultanément, je veux utiliser l'instruction atomique MERGE INTO
. Donc, mon (préparé) déclaration ressemble à ceci:
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
Quand j'exécuter l'instruction (réglage de l'espace réservé à juste titre), je reçois toujours un
Caused by: org.hsqldb.HsqlException: row column count mismatch
Pourriez-vous s'il vous plaît me donner un indice, qu'est-ce qui ne va pas ici?
Merci d'avance.
Est-ce l'erreur * exact * et * complete *? (Google n'a pas d'autres occurrences sur ce texte que cette question.) '' "Table" et '" ID_MAP "' deux tables différentes? Ce n'est pas clair à partir de votre question ... – pilcrow
Merci pour cet indice. Oui, ils sont pareils. Je voulais juste les renommer afin de simplifier la question. Je les ai changé à nouveau maintenant. C'est une table, appelée ici 'mytable' –
Pour la postérité, HyperSQL a reconnu le bogue dans 2.0.0-rc9 et corrigera. Voir https://sourceforge.net/projects/hsqldb/forums/forum/73674/topic/3681460 – pilcrow