MySQL查询返回false,但执行正确

时间:2018-09-27 20:20:48

标签: mysql jdbc google-apps-script

我正在研究Google Apps脚本,并使用JDBC连接到外部数据库。

我有一个用户表和一个合同表,我已经更改了一些隐私值,但这是我的基本查询。基本上,我有要循环的合同编号列表,对于每个合同编号,都执行查询。合同表和用户表共享一个主要ID,因此我只是尝试更新用户表中的值,其中用户合同ID等于该合同号的合同ID。

var contractNumbers = ["123","456","789"];
for (var a in contractNumbers) {
  var stmt = conn.createStatement();  
  var contractNum = contractNumbers[a];
  var query = "UPDATE user INNER JOIN contracts ON user.id_c = contracts.id SET user.quantity = '1' WHERE contracts.number = '" + contractNum + "'";
  var stmt = conn.prepareStatement(query);
  var result = stmt.execute();
}

此查询正在运行,并且正在正确正确地更改值,但是结果始终返回false。知道我的查询正在工作,但返回false可能有什么问题吗?还是对执行此查询的更好方法的建议?

2 个答案:

答案 0 :(得分:1)

输入数据而不获取数据时,返回值为max-width 医生说:

  

返回:       如果第一个结果是ResultSet对象,则为true;否则为false。如果第一个结果是更新计数或没有结果,则为false。

您的情况是最新消息,没有结果

完整文档here

答案 1 :(得分:1)

由于上面的@JSmith,我被指出了正确的方向。正确的执行方式是:

 var result = stmt.executeUpdate(query);

每-Cannot issue data manipulation statements with executeQuery()