Ich versuche, eine Methode in Java, die alle Datensätze zwischen zwei Daten löscht, aber es gibt mir einen Synax-Fehler. Dies ist der Code ‚?‘Java Mysql löschen Datensätze zwischen Daten Syntax Fehler
public void updateIntegraton(String dateInit, String dateEnd)
{
Connection conn = ConnectionManager.getConnection();
String sql_delete = "DELETE FROM my_schema.my_table WHERE DATE(day_date) BETWEEN DATE(?) AND DATE(?)";
String sql_safe_updates = "SET SQL_SAFE_UPDATES = 0";
PreparedStatement ps_delete;
PreparedStatement ps_safe_updates;
try {
ps_safe_updates = conn.prepareStatement(sql_safe_updates);
System.out.println("Setting safe updates off.");
ps_safe_updates.execute();
ps_delete = conn.prepareStatement(sql_delete);
ps_delete.setString(1, dateInit);
ps_delete.setString(2, dateEnd);
System.out.println("Delete Query: " + ps_delete);
System.out.println("Deleting all records between dates " + dateInit +" and "+ dateEnd);
ps_delete.execute(sql_delete);
System.out.println("Deleted records. ");
} catch (SQLException e) {
System.out.println("Something went wrong on Delete");
e.printStackTrace();
}
}
Wie Sie sehen können, Ich drucke die Lösch SQL-Anweisung, nachdem ich die ersetzen Parameter mit Werten. Hier ist ein Beispiel dafür, was er druckt auf der Konsole:
Delete Query: [email protected]: DELETE FROM my_schema.my_table WHERE DATE(day_date) BETWEEN DATE('2016-04-01') AND DATE('2016-04-08')
Ich betreiben, dass genau die gleiche Abfrage auf MySQL Workbench und Zeilen gelöscht werden, jedoch bekomme ich diese Syntaxfehler, wenn ich meinen Java-Code ausführen:
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?) AND DATE(?)' at line 1
Ich habe diese Syntax verwendet, um andere SQL-Anweisungen auszuführen und keine Fehler. Die einzige Sache in meinem Kopf ist, dass die "execute" -Methode im ps_delete.execute (sql_delete) Teil meines Codes nicht funktioniert, aber ich habe "executeUpdate" und "executeQuery" Methoden verwendet, die mir auch Fehler geben.
Ich verwende die Bibliothek mysql-connector-java-5.0.8-bin.jar, um die Verbindung zu meiner MySQL-Bibliothek herzustellen.
Irgendeine Idee warum dies geschieht und wie kann ich es lösen?
Dank
Stumm mich. Das hat es gelöst. Vielen Dank! –