WHIT NOT EXISTSを挿入するためにprepared statementを使用しています。私はさまざまな方法で試してみましたが、単純に機能しません。私のコードはjava.sql.SQLException:クエリの準備中にエラーが発生しました:テーブルが使用されていません
java.sql.SQLException: Error preparing query: No tables used
ある 私はcatch (SQLException sqle)
でキャッチエラーがされています。私はまた試してみました
Caused by: org.mariadb.jdbc.internal.util.dao.QueryException: Error preparing query: No tables used
:私はこのエラーを印刷MariaDBを、使用してい
try {
//hacer los inserts
sql = "INSERT INTO calendario (year, mes, dia, date) "
+ "SELECT * FROM (SELECT ? as year,? as mes ,? as dia,? as date) AS tmp "
+ "WHERE NOT EXISTS (SELECT * FROM calendario WHERE "
+ "year=? AND mes=? AND dia=?)";
injerto = conn.prepareStatement(sql);
injerto.setInt(1, year);
injerto.setInt(2, mes);
injerto.setInt(3, dia);
injerto.setDate(4, sqldate);
injerto.setInt(5, year);
injerto.setInt(6, mes);
injerto.setInt(7, dia);
injerto.addBatch();
injerto.executeBatch();
} catch (SQLException sqle) {
sqle.printStackTrace();
System.out.println("Calendario dice: me muero");
System.exit(0);
}
:
sql = "INSERT INTO calendario (year, mes, dia, date) "
+ "SELECT ?,?,?,? "
+ "WHERE NOT EXISTS ("
+ "SELECT * FROM calendario "
+ "WHERE year = ? AND mes = ? AND dia = ?)";
エラーの変更:
お願いします。
selectにはfrom節がありません。 – NineBerry
"INSERT INTO calendario(year、mes、dia、date)" + "VALUES(?、?、?、?)" + "存在しない場所(SELECT *からcalendario WHERE" + " =?AND mes =?AND dia =?) "' –
あなたは、データスキーマとフィールド名にスペイン語または英語の完全版を使用します。 – Hackerman