我有一张有四个字段的桌子
create table test_hc1(cola int,colb int,colc varchar(20),cold int);现在,我正在尝试加载以下数据
1,2,\N,4表中的第三个字段是NULL,这是预期的结果。
在另一种情况下,我试图加载以下数据
1,2,NULL,4它还将第三个字段加载为NULL。
下面是我的问题:使用这两种(\N,NULL)有什么区别?
我在用
LOAD DATA LOCAL INFILE 'PATH_TO_DATAFILE'
INTO TABLE TABLE_NAME FIELDS TERMINATED BY x'01';任何帮助都是非常感谢的。
谢谢
发布于 2013-11-18 06:13:54
取决于在FIELDS语句中使用的选项LOAD DATA和LINES。
NULL值的处理根据所使用的字段和行选项而有所不同:对于默认字段和行值,NULL被写入输出的字段值\N,字段值\N对于输入读取为NULL (假设转义字符为“\”)。如果被包围的字段不是空的,则将包含文字单词NULL的字段作为其值读取为空值。这与字符括起来的字段中包含的单词NULL不同,该字段被读为字符串'NULL‘。如果由转义的字段为空,则NULL将写入单词NULL。使用固定行格式(当字段结束时,字段结束和字段都为空),NULL被写为空字符串。请注意,这将导致表中的空值和空字符串在写入文件时都无法区分,因为两者都是作为空字符串写入的。如果您需要在读取文件时能够将两者区分开来,则不应使用固定行格式。
发布于 2013-07-19 16:46:09
来自MySQL文档:
空值表示“无数据”。NULL可以用任何字母大写。同义词是\N (区分大小写)。
https://dba.stackexchange.com/questions/46670
复制相似问题