我有一个类似的MySQL更新查询:
UPDATE personInfo SET Email='blah@blah.com', FirstName='Bob', LastName='Smith', Lang='EN' WHERE RowID=12345 and PoolRowID=1001;
RowID是一个唯一键,我们为了安全起见添加了PoolRowID。我通过JOOQ这样称呼它:
// results in a JOOQ stmt equivalent to the SQL stmt above
UpdateConditionStep<ContactRecord> updateQuery = createUpdatePersonInfoTableQuery(id, personInfo, create);
int ret = updateQuery.execute();
但是,无论数据是否实际更改,ret始终为1。换句话说,即使UPDATE语句将所有值设置为其现有值,ret仍然是1.我已将生成的JOOQ SQL转储出来并从MySQL命令行执行它,我得到Rows Changed = 0。
因此,JOOQ似乎返回匹配的行数,而不是受影响的行数。但是JOOQ文档和MySQL文档都表明UPDATE返回受影响的行数。
我的查询有问题吗?