管理スタジオと で機能するクエリexecuteUpdate
は、同じexecuteUpdate
returnを返し-1
ます。これは、見つけることができるドキュメントでは定義されていません。行数またはのみを返すはず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 を返す必要があることを意味するはずですよね?