【问题标题】:MariaDB LOAD DATA INFILE for null DATE fieldMariaDB LOAD DATA INFILE 用于空 DATE 字段
【发布时间】:2019-07-14 11:07:30
【问题描述】:

我正在尝试将 tsv 文件加载到 mariadb 表中。其中一个字段是可为空的 DATE。 根据我的收集,加载数据 infile 使用“\N”来识别空内容,但在这种情况下,这是不行的:

ERROR 1292 (22007) at line 1: Incorrect date value: '\N' for column 'delete_date' at row 1       

知道如何在不为导入编写特定 CASE WHEN 的情况下导入该数据吗?它是加载多个表的脚本的一部分,因此我不想将其视为特殊情况。

将字段留空当然也是一个错误:

ERROR 1292 (22007): Incorrect date value: '' for column 'delete_date' at row 1

我认为可以为日期导入空值,所以我一定是遗漏了一些东西。

【问题讨论】:

    标签: mysql mariadb load-data-infile


    【解决方案1】:

    拍摄from the mariadb knowledge base

    sql_mode 服务器系统变量设置为strict 模式时会引发该错误。如果未设置,您可以输入空白日期 - 会生成警告并插入“0000-00-00”。

    如果您可以在导入期间设置严格模式off,那应该可以工作,否则您需要将 CSV 中的空白日期列替换为 NULL 或“0000-00-00”。

    【讨论】:

    • 啊,很好的发现。 NULL 不起作用(这并不奇怪),但幸运的是 0000-00-00 起作用,因为我不想关闭严格模式。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    • 2019-01-11
    • 1970-01-01
    • 2021-11-10
    • 2011-03-05
    • 2016-10-24
    相关资源
    最近更新 更多