[英]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.