我使用对客户端的一次调用提交多个数据库查询mysql2
。客户端是使用Mysql2::Client::MULTI_STATEMENTS
标志配置的。
如果其中一个查询有语法错误,我希望调用失败,但目前它成功,除非第一个语句中出现错误。
我的测试代码如下。有没有办法在仍然使用多语句查询(而不是单独发送每个查询)的同时实现这一点?
require 'mysql2/em'
def database
@database ||= Mysql2::EM::Client.new(flags: Mysql2::Client::MULTI_STATEMENTS)
end
EM.run {
database.query('select rand(1);bad syntax;').callback {|rs|
rs.each {|r|
p r
}
EM.stop
}.errback {|e|
p e
EM.stop
}
}