【发布时间】:2010-04-09 18:45:04
【问题描述】:
我有以下 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)
为了同时添加新的对,我想使用原子MERGE 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
请给我一个提示,这里出了什么问题?
提前致谢。
【问题讨论】:
-
这是 exact 和 complete 错误吗? (除了这个问题,谷歌对该文本没有任何点击。)
"table"和"ID_MAP"是两个不同的表吗?从您的问题中不清楚... -
感谢您的提示。是的,它们是一样的。我只是想重命名它们以简化问题。我现在又改了。这是一张桌子,这里叫
mytable -
HyperSQL 承认 2.0.0-rc9 中的 bug 并将修复。见sourceforge.net/projects/hsqldb/forums/forum/73674/topic/…