繁体   English   中英

Ruby脚本在sql查询完成之前结束

[英]Ruby script end before sql query finish

我使用ruby脚本运行SQL查询,该脚本大约需要2个小时。

我如何确保脚本只在查询过程结束时才会退出/结束,因为现在我运行了脚本,它将查询传递给数据库,当查询仍在数据库上运行时,脚本立即关闭。 大多数查询是插入,删除表,创建表等命令。

#!/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

知道如何等待查询完成,因为我想在完成后检查第一个查询的同一个脚本中添加另一个查询。

官方文档

多个结果集

您还可以检索多个结果集。 为此,您需要使用标志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 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM