我有一些文本文件 - 定期生成 - 包含要使用mysqlimport插入mysql的sql行。其中一列具有Null值,数据库中的此列是日期时间字段,默认值设置为Null。但是在运行mysql导入后,我在这个专栏中得到了值00:00:00,那我怎么能摆脱这个呢?我希望列值在插入时为Null。
修改: 注意:
1)使用INSERT语句直接插入行时,不会发生此问题,并且列值通常设置为NULL,因此这与mysqlimport
2)我使用这个mysqlimport:mysqlimport -u root -p<password> -h localhost --columns='<columns_orders>' --local --fields-terminated-by=',' <db_name> <file_path>
3)数据文件中一行的样本:5964,45,0,0,NULL,45,5,8,67869,67848,65142,1,NULL,NULL,NULL,19
4)datetime列是通过rails迁移创建的rails timestamp created_at
。
答案 0 :(得分:2)
如果表定义允许null并且默认为NULL并且源数据也包含\ N,那么您应该按预期获得NULL。 MySQL在许多方面都不是一个可靠的数据库服务器,所以我需要你的源(至少是一些样本)来诊断实际问题。可能是空字符串而不是\ N。
答案 1 :(得分:0)
可以快速破解:
暂时将datetime列的类型更改为VARCHAR
,以便空值变为空字符串。
导入完成后,将该列的类型更改回日期时间,它将为您提供所需的结果:)