csv导入mysql全是null_MySQL从CSV数据加载NULL值

本文讨论了在使用MySQL的LOAD DATA INFILE命令从CSV文件导入数据时遇到的问题,即当CSV文件中存在空字段时,MySQL不使用列的默认值(NULL)而填充0。内容包括表结构、导入命令以及导入后的结果展示,同时提到了SHOW WARNINGS命令的输出,显示了关于不正确的整数值警告和行数据不完整的情况。博主寻求解决方案来区分NULL和0。
摘要由CSDN通过智能技术生成

MySQL从CSV数据加载NULL值

我有一个文件,可以包含3到4列数字,用逗号分隔。当空字段位于行的末尾时,将定义空字段:

1,2,3,4,5

1,2,3,,5

1,2,3

下表是在MySQL中创建的:

+ ------- + -------- + ------ + ------ + --------- + ------- +

| 领域| 输入| 空| 钥匙| 默认| 额外的|

+ ------- + -------- + ------ + ------ + --------- + ------- +

| 一个| int(1)| 是的| | NULL | |

| 两个| int(1)| 是的| | NULL | |

| 三个| int(1)| 是的| | NULL | |

| 四个| int(1)| 是的| | NULL | |

| 五| int(1)| 是的| | NULL | |

+ ------- + -------- + ------ + ------ + --------- + ------- +

我正在尝试使用MySQL LOAD命令加载数据:

LOAD DATA INFILE '/tmp/testdata.txt' INTO TABLE moo FIELDS

TERMINATED BY "," LINES TERMINATED BY "\n";

结果表:

+ ------ + ------ + ------- + ------ + ------ +

| 一个| 两个| 三个| 四个| 五|

+ ------ + ------ + ------- + ------ + ------ +

| 1 | 2 | 3 | 4 | 5 |

| 1 | 2 | 3 | 0 | 5 |

| 1 | 2 | 3 | NULL | NULL |

+ ------ + ------ + ------- + ------ + ------ +

问题在于,当原始数据中的字段为空且未定义时,MySQL由于某种原因不使用列默认值(即NULL)并使用零。当字段完全丢失时,正确使用NULL。

不幸的是,我必须能够在这个阶段区分NULL和0,所以任何帮助将不胜感激。

谢谢S.

编辑

SHOW WARNINGS的输出:

+ --------- + ------ + -------------------------------- ------------------------ +

| 等级| 代码| 消息|

+ --------- + ------ + -------------------------------- ------------------------ +

| 警告| 1366 | 不正确的整数值:''对于第2行的第4列'

| 警告| 1261 | 第3行不包含所有列的数据

| 警告| 1261 | 第3行不包含所有列的数据

+ --------- + ------ + -------------------------------- ------------------------ +

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值