mysql - 为什么使用来自 ruby​​ 的 LOAD DATA LOCAL INFILE 插入时,MySQL 中插入的行数较少

标签 mysql ruby-on-rails ruby mysql-workbench mysql-error-1064

我正在尝试使用 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/

相关文章:

php - 如何将可重复的 xml 子标签导入一个 mysql 列

mysql - 存储哈希值的最佳 mysql 类型是什么

ruby-on-rails - Heroku 上的 Ruby 应用程序绑定(bind)端口失败

ruby - 你如何安装 pry 插件?

Mysql SQL for "replace everything but this"where xxx

mysql - 查询在 MySQL 5.6 中不起作用 - [MYSQL 5.1(主)到 MYSQL 5.6(从)复制错误]

ruby-on-rails - ruby rails 3 : How can I disconnect an object from another object in the database without deleting it?

ruby-on-rails - request.location ruby​​ 地理编码器中的错误

javascript - CoffeeScript 为对象(命名类)生成动态变量名称

ruby-on-rails - Bundler 正在弃用 bundle 控制台以支持 bin/console。谁能更清楚地说明 bin/console 应该如何工作?