我使用ruby脚本运行SQL查询,该脚本大约需要2个小时。
如何确保脚本仅在查询过程结束时才会退出/结束,因为现在我运行了脚本,它将查询传递给数据库,并且在查询仍在运行时脚本立即关闭DB。 大多数查询都是插入,删除表,创建表等命令。
#!/usr/bin/env ruby
require 'mysql2'
client = Mysql2::Client.new(:host => ENV_YML['host'], :username => ENV_YML['username'], :password => ENV_YML['password'], :database => ENV_YML['dbtemp'], :flags => Mysql2::Client::MULTI_STATEMENTS)
client.query("
...
")
我想在第一次完成后才运行此查询
client.query("SELECT ;").each do |row|
....
end
知道如何等待查询完成,因为我想在完成后检查第一个查询的同一个脚本中添加另一个查询。
答案 0 :(得分:4)
多个结果集
您还可以检索多个结果集。为此你需要工作 连接标志Mysql2 :: Client :: MULTI_STATEMENTS。多 结果集可以与返回超过的存储过程一起使用 一个结果集,以及将多个SQL语句捆绑成一个 打电话给client.query。
client = Mysql2::Client.new(:host => "localhost", :username => "root", :flags => Mysql2::Client::MULTI_STATEMENTS) result = client.query('...') while client.next_result result = client.store_result # result now contains the next result set end