Reason: liquibase.exception.DatabaseException: ERROR: syntax error at or near "," for liquibase loadUpdateData with data using quotchar

Reason: liquibase.exception.DatabaseException: ERROR: syntax error at or near "," for liquibase loadUpdateData with data using quotchar

我遇到了这个错误

mental-app_1            |      Reason: liquibase.exception.DatabaseException: ERROR: syntax error at or near ","
mental-app_1            |   Position: 55 [Failed SQL: DO
mental-app_1            | $$
mental-app_1            | BEGIN
mental-app_1            | UPDATE public.training SET active_since = , active_until = , conditions = 'obj.trainingColumns = [1,2];', game_id = 28, identificator = '3_1', subject_id = 1 WHERE id = 1;
mental-app_1            | IF not found THEN
mental-app_1            | INSERT INTO public.training (id, active_since, active_until, identificator, conditions, game_id, subject_id) VALUES (1, , , '3_1', 'obj.trainingColumns = [1,2];', 28, 1);
mental-app_1            | END IF;
mental-app_1            | END;
mental-app_1            | $$
mental-app_1            | LANGUAGE plpgsql;]

执行变更集的以下部分时

<loadUpdateData onlyUpdate="true" quotchar='"'
            file="config/liquibase/data/training.csv"
            separator=";"
            tableName="training"  primaryKey="id">
            <column name="id" type="numeric"/>
            <column name="active_since" type="datetime"/>
            <column name="active_until" type="datetime"/>
            <column name="identificator" type="string"/>
            <column name="conditions" type="string"/>
            <column name="game_id" type="numeric"/>
            <column name="subject_id" type="numeric"/>
            <!-- jhipster-needle-liquibase-add-loadcolumn - JHipster (and/or extensions) can add load columns here, do not remove-->
        </loadUpdateData>

对于此类数据

id;active_since;active_until;identificator;conditions;game_id;subject_id
1;;;3_1;"obj.trainingColumns = [1,2];";28;1

数据集的变更集设置有什么问题? 改为

id;active_since;active_until;identificator;conditions;game_id;subject_id
1;"";"";3_1;"obj.trainingColumns = [1,2];";28;1

原因相同。那就是 PostgreSQL。

尽管仍然不清楚,为什么抛出异常,我已经成功地从数据集中删除了 active_sinceactive_to 列,并将它们从变更集 conf 中删除。但是直到我得到像这样 "obj.trainingColumns = [1,2];" 这样的条件列的引号字符串之前,空的 active_sinceactive_to 是可以的。因此,"obj.trainingColumns = [1,2];" 和该字段为空的共存在那里至关重要