我正在研究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可能有什么问题吗?还是对执行此查询的更好方法的建议?
答案 0 :(得分:1)
输入数据而不获取数据时,返回值为max-width
医生说:
返回: 如果第一个结果是ResultSet对象,则为true;否则为false。如果第一个结果是更新计数或没有结果,则为false。
您的情况是最新消息,没有结果
完整文档here
答案 1 :(得分:1)
由于上面的@JSmith,我被指出了正确的方向。正确的执行方式是:
var result = stmt.executeUpdate(query);
每-Cannot issue data manipulation statements with executeQuery()