Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么从ruby使用LOAD DATA LOCAL Infle插入MySQL时插入的行数较少_Mysql_Ruby On Rails_Ruby_Mysql Workbench_Mysql Error 1064 - Fatal编程技术网

为什么从ruby使用LOAD DATA LOCAL Infle插入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 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 '\\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字符?一旦您确定了丢失的行的不同之处,您可能会有一个很大的线索。可能是字符编码设置?