一个在管理工作室中工作的查询和在executeUpdate
相同的executeUpdate
return中工作-1
,这在我们能找到的任何文档中都是未定义的。它应该只返回 rowcount 或0
. 这是什么意思?如果这很重要,驱动程序就是 JDBC-ODBC 桥。
例子:
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 或行数(正如我已经更正的那样)。
更新:
在 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 因为它不返回任何内容,对吗?