【问题标题】:to insert Empty value into Postgresql将空值插入 Postgresql
【发布时间】:2020-11-06 14:04:32
【问题描述】:

我有一个 postgresql 数据库。我正在使用 liquibase 将数据从 CSV 文件插入到 postgresql 中的表中。 在这里,我有表 ABC,其列类型为 SMALLINT。

CREATE TABLE ABC (
NAME VARCHAR(20),
REQUIRED SMALLINT DEFAULT 0,
SUMMARY VARCHAR(50)
);

我的 CSV

NAME,REQUIRED,SUMMARY
John,,Playing

我收到以下错误

liquibase.exception.DatabaseException: ERROR: syntax error at or near ","n 

变更集

<changeSet id="12345"
        author="test" runOnChange="true">
         <loadUpdateData
            encoding="UTF-8"
            file="/data/ABC.csv"
            quotchar=""
            separator=","
            tableName="ABC">
        <column name="NAME" type="STRING"/>
        <column name="REQUIRED" type="NUMERIC"/>
        <column name="SUMMARY" type="STRING"/>
    </loadUpdateData>
    </changeSet>

任何人都可以在这里提供帮助。另一个问题是,为什么默认在这种情况下不起作用?

【问题讨论】:

  • 你可以试试John,NULL,Playing
  • @PhilippJohannis ,它在表中存储为 [NULL]。好吗。在以前的数据库中,表中的字段为空(空白)。

标签: postgresql csv liquibase


【解决方案1】:

Required 定义为 smallint - 这意味着它可以是介于 -32768 和 32767 或 NULL 之间的任何整数。

NULL可以插入

NAME,REQUIRED,SUMMARY
John,NULL,Playing

'' 之类的内容无法插入到 int 列中。我假设[NULL]empty(blank) 只是不同数据库工具的不同渲染。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-06
    • 2015-05-23
    • 1970-01-01
    • 1970-01-01
    • 2017-04-04
    • 2019-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多