MySQL csv导入正在截断charecters

时间:2016-11-10 08:12:25

标签: mysql csv import

我有一个奇怪的问题。我使用下面的代码将一堆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输出。 我有一个名为“UserName”的字段,我只是在那个字段中观察到了这个问题。 用户名的格式为:

  

Trilegal \ {用户名}

现在,首先导入后,“\”丢失,一些名称在“\”之后缺少第一个字符。

由于存在这个“\”,我猜错了。我认为问题出在我的桌子上,因此我使用了GUI导入方式。 GUI方式导入正常。我使用相同的表使用上面的代码导入,同样的问题又回来了。

我是MySQL的新手,所以如果有人能帮助我理解这个问题,那就太好了。

编辑:从“/”

更改为“\”

谢谢, SS

1 个答案:

答案 0 :(得分:0)

答案是转义字符,默认情况下mySQL会处理" \"作为逃避角色。

在代码中添加一行ESCAPED BY '',并且不会使用默认的转义参数。

P.S:是的,我知道我在回答自己。经过一番阅读后得出这个答案。 :d