【发布时间】:2017-03-24 04:38:10
【问题描述】:
我有一个奇怪的问题。我正在使用下面的代码将一堆 csv 文件导入 MySQL 数据库。
@ECHO OFF
setlocal enabledelayedexpansion
IF /I "%CD%\" NEQ "%~dp0" PUSHD "%~dp0"
mysql -e "DELETE FROM software_it.hardware" -u root
FOR %%f IN ("*.csv") DO (
set old=%%~dpnxf
set new=!old:\=\\!
mysql -e "load data local infile '"!new!"' into table software_it.hardware COLUMNS TERMINATED BY ',' IGNORE 1 ROWS" -u root
echo %%~nxf DONE
)
首先,csv 文件来自 CMD 输出。 我有一个名为“用户名”的字段,我只在该字段中观察到了这个问题,非常明显。 用户名格式为:
Trilegal\{用户名}
现在,首先在导入之后,缺少“\”,并且一些名称在“\”之后缺少第一个字符。
由于这个“\”的存在,我猜想出了点问题。我认为问题出在我的表上,因此我使用了 GUI 导入方式。 GUI方式导入良好。我使用上面的代码使用同一张表导入,同样的问题又回来了。
我是 MySQL 的新手,所以如果有人能帮助我理解这个问题,那就太好了。
编辑:从“/”改为“\”
谢谢, SS。
【问题讨论】:
-
CSV 文件中的
/没有什么特别之处。确保文件中没有多余的逗号。 -
你确定吗?因为当我在同一个表中使用 GUI 导入 .csv 文件时,它导入得很好。上面的代码是导致问题的原因。其实我错了,我会编辑它。它是“\”而不是“/”。所以我猜像 \b 或 \r 这样的词正在做出一些改变。
-
那个错字可能是我昨晚没有得到答案的原因。