当 Statement.executeUpdate() 返回 -1 时是什么意思?
在管理工作室和 中工作的查询会产生相同的返回 ,这在我们可以找到的任何文档中都是未定义的。它应该只返回行计数或 .这是什么意思?驱动程序是 JDBC-ODBC 桥接器(如果这很重要)。executeUpdate
executeUpdate
-1
0
例:
String query = "IF NOT EXISTS (SELECT * FROM animals WHERE animal_name ='" + a +"') INSERT INTO " + table + " (animal_name, animal_desc, species_id) VALUES ('" + a + "', '" + b + "', " + c + ")";
int result = statement.executeUpdate(query);
System.out.println(result);
查询工作正常,因为行被添加到数据库中,它返回-1,文档说它只会返回0或rowcount(正如我已经更正的那样)。
更新:
在 Management Studio 中运行此命令会得到“命令已成功完成”。
IF NOT EXISTS (SELECT * FROM animals WHERE animal_name = 'a')
INSERT INTO animals(animal_name, animal_desc, species_id) VALUES ('a', 'a', 1)
这应该意味着该方法应该返回0,因为它不返回任何内容,对吗?