Statt MySQL Xampp Server auf meinem Java-Projekt verwenden, entschied ich mich, Microsoft Access als meine Datenbank verwenden, aber ich habe einen Fehler in meiner Abfrage mit dieser Syntax. Hier ist mein Java-CodeCREATE TABLE WENN NICHT EXISTS löst einen Fehler in UCanAccess
public static void main(String[] args) throws SQLException {
// TODO code application logic here
try {
conn = DriverManager.getConnection("jdbc:ucanaccess://C:\\Database.accdb;jackcessOpener=myproject.CryptCodecOpener","root", "");
System.out.println("successfuly connected");
Statement s = conn.createStatement();
PreparedStatement state = conn.prepareStatement("CREATE TABLE IF NOT EXISTS test(name varchar(400))");
state.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
finally {
}
Hier ist der Fehler:
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.1 user lacks privilege or object not found: IF
at net.ucanaccess.jdbc.UcanaccessPreparedStatement.executeUpdate(UcanaccessPreparedStatement.java:256)
at myproject.MyProject.main(MyProject.java:31)
IF NOT EXISTS
in MySQL mit funktioniert gut, aber in UCanAccess habe ich diesen Fehler und wenn ich die IF NOT EXISTS
entfernen funktioniert es gut.
Haben Sie genügend Berechtigungen, um eine Tabelle in der Datenbank zu erstellen? – Pirate
Warum verwenden Sie HSQLDB nicht einfach direkt? –
ja. Wenn ich die IF NOT EXISTS wie folgt entfernen ** CREATE TABLE TEST ("name varchar (250)") **, es funktioniert gut. –