# Tabellen löschen



## pepe-je (23. Jun 2006)

In meinem Pogramm sind MySQL Tabellen zu löschen, wobei die Auswahl der Tabelle vom Benuzuer durch Anklicken auf einer JList erfolgt.

Der Name der Tabelle kann also im Programm nicht direkt eingetragen werden.

Ich habe versucht, das Problem mit einen preparedStatement zu lösen.

                              String sql = DROP TABLE ?;
                              PreparedStatement pstmt = con.prepareStatement(sql);
			      pstmt.setString(1,x);								 /
			      pstmt.executeUpdate();

                                                           x ist der Name der Tabelle.

Das funktioniert nicht, weil der Befehl DROP TABLE ? offenbar nicht erlaubt ist.

Weiß jemand, wie das Problem zu lösen ist.  Wie also DROP TABLE mit einem variablen Tabellennamen 
ausgeführt werden kann?

Ich wäre dankbar, wenn mir jemand helfen könnte.

Peter


----------



## foobar (23. Jun 2006)

Dir fehlen anscheinend in MYSQL die enrsprechenden Rechte um Tabellen löschen zu können. Such mal nach GRANT und REVOKE und lies die SQL-Doku von Mysql.


----------



## pepe-je (24. Jun 2006)

Am Recht Tabellen zu löschen kann es nicht liegen, denn wenn der Befehl mit einer vorher bestimmten Tabelle , z.B. eins ausgeführt wird, funktioniert es.

         String sql = "DROP TABLE eins";
         Statement stm  = con.createStatement();
	 stm_2.executeUpdate(sql);


----------



## foobar (24. Jun 2006)

Was passiert denn dann? Poste doch mal die Fehlermeldung.


----------



## pepe-je (24. Jun 2006)

Mit 

        String sql = DROP TABLE ?;
        PreparedStatement pstmt = con.prepareStatement(sql);
        pstmt.setString(1,x); 
        pstmt.executeUpdate(); 

kommt keine Fehlermeldung, aber die Tabelle wird nicht nicht gelöscht.


----------

