我正在将 MySQL 5.5 物理主机数据库迁移到 MySQL 5.6 AWS Aurora 数据库。我注意到,当使用 将数据写入文件时INTO OUTFILE
,5.5 将NULL
值写入为'\N'
,将空字符串写入为''
. 但是,5.6 将空字符串和 NULL 都写为 ''
.
询问
SELECT * FROM $databasename.$tablename INTO OUTFILE $filename CHARACTER SET utf8 FIELDS ESCAPED BY '\\\\' TERMINATED BY $delimiter;
我找到了关于这个的官方文件:
https://dev.mysql.com/doc/refman/5.6/en/load-data.html
对于固定行格式(当 FIELDS TERMINATED BY 和 FIELDS ENCLOSED BY 都为空时使用),NULL 被写为空字符串。这会导致表中的 NULL 值和空字符串在写入文件时无法区分,因为两者都是作为空字符串写入的。如果在读回文件时需要能够区分两者,则不应使用固定行格式。
我如何导出NULL
为'\N'
?