【发布时间】:2011-06-12 02:20:47
【问题描述】:
我正在尝试使用 Liquibase 1.9.5 将一些数据加载到 HSQLDB 数据库中。我有一个loadData 命令如下:
<loadData tableName="LIST_ITEM_TYPE" file="data/global/list_item_type.csv">
<column name="ID" type="NUMERIC" />
<column name="NAME" type="STRING" />
<column name="DESCRIPTION" type="STRING" />
</loadData>
在我的 CSV 数据文件中,我尝试将 ID 值设置为现有序列中的下一个值:
id,name,description
next value for SEQ_ITEM_TYPE_ID,Test Name,A test description
但是,这不起作用,因为它会生成以下 SQL:
INSERT INTO LIST_ITEM_TYPE (id, description, name) VALUES ('next value for SEQ_ITEM_TYPE_ID', 'A test description', 'Test Name')
这几乎是正确的,除了 Liquibase 在 next value for SEQ_ITEM_TYPE_ID 周围添加的单引号导致 HSQLDB 给出以下错误:
java.sql.SQLException: data exception: invalid character value for cast
如果我删除 sinqle 引号并手动运行该 SQL,它会按预期工作。
所以,我的问题是,如何使用 Liquibase loadData 命令从 CSV 文件中提取数据,同时从序列中填充其中一列?
【问题讨论】:
-
哦,是的,我们正在使用 HSQLDB 2.0,如果这很重要的话。