1

我使用对客户端的一次调用提交多个数据库查询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
  }
}
4

0 回答 0