为什么从ruby使用LOAD DATA LOCAL Infle插入MySQL时插入的行数较少
我试图使用LOAD data LOCAL INFLE命令将文本文件中的数据插入MySQL 当我在MySQL窗口中点击这个命令时,我得到了插入的记录总数为什么从ruby使用LOAD DATA LOCAL Infle插入MySQL时插入的行数较少,mysql,ruby-on-rails,ruby,mysql-workbench,mysql-error-1064,Mysql,Ruby On Rails,Ruby,Mysql Workbench,Mysql Error 1064,我试图使用LOAD data LOCAL INFLE命令将文本文件中的数据插入MySQL 当我在MySQL窗口中点击这个命令时,我得到了插入的记录总数 LOAD DATA LOCAL INFILE 'filepath' INTO TABLE tablename FIELDS TERMINATED BY '\t'; connect.query("LOAD DATA LOCAL INFILE 'filepath' INTO TABLE tablename FIELDS TERMINATED BY
LOAD DATA LOCAL INFILE 'filepath' INTO TABLE tablename FIELDS TERMINATED BY '\t';
connect.query("LOAD DATA LOCAL INFILE 'filepath' INTO TABLE tablename FIELDS TERMINATED BY '\\t';")
然而,当我使用ruby传递相同的命令时,我看到插入的数据更少
LOAD DATA LOCAL INFILE 'filepath' INTO TABLE tablename FIELDS TERMINATED BY '\t';
connect.query("LOAD DATA LOCAL INFILE 'filepath' INTO TABLE tablename FIELDS TERMINATED BY '\\t';")
我已经通过打印上面的查询进行了验证,结果是一样的
我使用的是MySQL Workbench 6.3版本6.3.10 build 12092614如果'filepath'是一个变量,则不会展开。试试这个:
connect.query("LOAD DATA LOCAL INFILE '#{filepath}' INTO TABLE tablename FIELDS TERMINATED BY '\\t';")
如果“filepath”是文件路径文字,请尝试使用根目录中的绝对路径。也就是说,如果MySQL在本地运行
如果将此查询提交到远程MySQL服务器,则不可能打开本地文件,您可能需要完全重新考虑导入策略 是的,filepath是保存文件位置的文本,正如您所提到的,我使用的是绝对路径。这里的问题是使用的是同一个查询,为什么我们会得到两个不同的结果。当我直接在mysql中执行该查询时,我可以看到插入的行总数。但是,如果我通过Ruby传递相同的数据,我会看到一些数据丢失。在通过Ruby时是否导入了一些记录?如果是这样,那么您需要减少问题,并确定这些行之间的差异。也许有些是unicode字符?一旦您确定了丢失的行的不同之处,您可能会有一个很大的线索。可能是字符编码设置?