我在文件 my_query.sql 中有以下查询脚本
select * from my_table;
delete from my_other_table where id > 5;
select * from my_other_table;
我试图通过 Ruby 中的“mysql”gem 执行此操作我遇到了 2 个关键问题
- 查询有多个语句,ruby gem 要求我使用 .query(...) 方法一次查询一个。
- 查询有多个select语句,gem返回的是hash,不确定是否会返回多个结果集。
理想情况下,在 unix/bash 中,我可以这样做
mysql my_schema < my_query.sql > my_out_file.txt
这只会一次运行整个脚本(解决问题 #1),并且只会将所有选择语句的结果打印为纯文本(解决问题 #2)。
Ruby 是否有类似的选项来运行查询文件并将整个输出转储到文件?
注意:我知道我可以 shell out 或使用 system(...) 来执行它,但这不是一个可接受的选项。我可以通过 mysql gem(或类似的 gem)完成这项工作吗?
谢谢!
最佳答案
我能够得到如下多个语句。请注意必须传递的标志才能启用多个语句。
conn = Mysql2::Client.new(:host => my_hostname,
:database => my_db,
:username => my_user,
:password => my_password,
:flags => Mysql2::Client::MULTI_STATEMENTS)
关于mysql - 在 Ruby 中使用 Mysql gem 运行脚本(多个语句),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17130107/