我正在尝试使用 LOAD DATA LOCAL INFILE 命令将文本文件中的数据插入 MySQL。
当我在 MySQL 窗口中点击这个命令时,我得到了插入的记录总数。
LOAD DATA LOCAL INFILE 'filepath' INTO TABLE tablename FIELDS TERMINATED BY '\t';
但是,当我使用 ruby 传递相同的命令时,我发现插入的数据变少了。
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';")
如果“文件路径”是文件路径文字,请尝试使用根目录的绝对路径。也就是说,如果 MySQL 在本地运行。
如果这个查询被提交到一个远程 MySQL 服务器,那么它就没有希望打开一个本地文件,你可能需要完全重新考虑你的导入策略。
关于mysql - 为什么使用来自 ruby 的 LOAD DATA LOCAL INFILE 插入时,MySQL 中插入的行数较少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50514854/