LOAD DATA INFILE 返回 0 行受影响,MySQL 8

问题描述 投票:0回答:4

已经在这里了,但我没有找到答案。 我正在尝试使用 LOAD DATA INFILE 命令将 csv 文件中的数据插入 mysql 表customers

我对此语法进行了多次修改,但它总是返回 0 行受影响的行。我哪里出错了?这是我的语法(在 Windows Server 2017 环境上运行 MySQL 8 Server)

LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/customers.csv' INTO TABLE customers
CHARACTER SET UTF8MB4
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES (ID,ClientNo,CustomerNo,LastName,FirstName,PhoneNumber,FaxNumber,PhoneNumberPrivate,MobileNumber,Email);

CSV 文件如下所示:

ID,ClientNo,CustomerNo,LastName,FirstName,PhoneNumber,FaxNumber,PhoneNumberPrivate,MobileNumber,Email
4911556,19,540789,Name1,Name2,00403651205,,,+403651205,[email protected]
4911560,19,540790,Name52,Name56,015344492,,,+15344492,[email protected]
4911561,19,540791,Name222,Name58,0904385448,,,4385448,
4911562,19,540792,Name547,Name555,7314727,,,+07314727,
4911967,5,1311473,Name789,Name562,+444839,,,,[email protected]

我要插入的表格如下所示:

CREATE TABLE 'customers' (
  'ID' int(11) DEFAULT NULL,
   'ClientNo' int(11) DEFAULT NULL,
  'CustomerNo' int(11) DEFAULT NULL,
  'FirstName' varchar(50) DEFAULT NULL,
  'LastName' varchar(50) DEFAULT NULL,
  'PhoneNumber' varchar(50) DEFAULT NULL,
  'FaxNumber' varchar(50) DEFAULT NULL,
  'PhoneNumberPrivate' varchar(50) DEFAULT NULL,
  'MobileNumber' varchar(50) DEFAULT NULL,
  'Email' varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

我现在真的不知道,在哪里,在做什么。我想这将是我错过的一些细节,但我现在看不到它。有人可以很快看一下吗?

mysql load-data-infile
4个回答
1
投票

对我来说,问题是第一行中的列名称被引用,并且数据是通过

FIELDS ENCLOSED BY '"'
(和
ESCAPED BY '"'
)导入的。实际上,我发现任何单引号都会导致“0 rows受影响”的结果。

与问题中描述的不完全一样,但可能相关。


1
投票

LINES TERMINATED BY '\r\n'
更改为
LINES TERMINATED BY '\n'
对我的情况有帮助。


0
投票

我陷入了同样的问题。我认为这与以 0 开头的数字有关。我的列(邮政编码)确实设置为 VARCHAR 但没有用。

但是只有在我在 Excel 中打开 CSV 后导入才有效,它会自动删除数字开头的 0。所以现在,CSV 中显示的是 [1234],而不是 ["01234"](在记事本中打开,使用 [ ] 只是指示值的开始和结束位置)。

对我来说幸运的是,我可以轻松地

CONCAT("0", zipcode) WHERE zipcode<100000
恢复真实数据。

所以我建议也许找到一种方法来去掉开头的 0 或用一个字符替换它并在后面添加 0?这就是我得到的全部 ́_(ツ)_/́ (不起作用,请阅读编辑)

编辑:我尝试用$替换前面的0(在excel中做的)并去掉了CSV文件中的“,但它仍然不起作用,0行受到影响。我非常困惑。我也尝试过删除像“ã”这样的特殊字符,但没有什么区别。


0
投票

将数据加载到文件“路径”中 进入表 online_retail 以“,”结尾的字段 用“”括起来 以“/n”结尾的行 忽略 1 行

© www.soinside.com 2019 - 2024. All rights reserved.