Frage

Wie lösche ich alle Tabellen im schema auf der Apache Derby DB mit JDBC?

War es hilfreich?

Lösung

Für tatsächlichen Code, der dies tut, überprüft CleanDatabaseTestSetup.java im Derby-Testsuite Abschnitt der Derby-Verteilung.

Andere Tipps

Dank gebührt href="http://stuetzpunkt.wordpress.com/2013/02/02/drop-tables-in-derby-db/" zum den Blog :

Schritt 1:

Führen Sie die SQL-Anweisung, aber vergessen Sie nicht mit Ihrem Ihre Schemanamen in den zwei Vorkommen unter den Schemanamen ‚APP‘ ersetzt werden:

SELECT
'ALTER TABLE '||S.SCHEMANAME||'.'||T.TABLENAME||' DROP CONSTRAINT '||C.CONSTRAINTNAME||';'
FROM
    SYS.SYSCONSTRAINTS C,
    SYS.SYSSCHEMAS S,
    SYS.SYSTABLES T
WHERE
    C.SCHEMAID = S.SCHEMAID
AND
    C.TABLEID = T.TABLEID
AND
S.SCHEMANAME = 'APP'
UNION
SELECT 'DROP TABLE ' || schemaname ||'.' || tablename || ';'
FROM SYS.SYSTABLES
INNER JOIN SYS.SYSSCHEMAS ON SYS.SYSTABLES.SCHEMAID = SYS.SYSSCHEMAS.SCHEMAID
where schemaname='APP';

Schritt 2:

Das Ergebnis der obigen Ausführung ist ein Satz von SQL-Anweisungen, sie an das SQL-Editor zu kopieren, führen sie, dann ist die Zwänge und die Tabellen werden gelöscht.

Sie eine wenig Methode in Java, in dem Sie ein

execute
DROP TABLE [tablename]

tablename wird durch Parameter übergeben.

Und ein anderes Verfahren, bei dem Sie eine Schleife über einen Datensatz von der Abfrage gebildet

SELECT tablename FROM SYSTABLES

die erste Methode aufrufen.

Derby neueste Dokumentation

Ich denke, die meisten DB-Provider nicht DROP TABLE * (oder ähnlich) ermöglichen.

Ich denke, der beste Weg, TABELLEN zu SHOW wäre und dann jedes Löschen über einen resultset in einer Schleife durchlaufen.

HTH.

JDBC ermöglicht es Ihnen, um zu lösen Ihre Aufgabe in einer Datenbank-agnostisch Weise:

  1. Öffnen Sie die Verbindung
  2. Schnappen Sie sich die DatabaseMetaData
  3. Verwenden Sie es, um eine Liste aller Tabellen in der Datenbank JavaDoc
  4. Iteration über die Ergebnismenge und Feuer-die DROP-TABELLE für jede Tabelle
  1. müssen Sie Schema und Tabellennamen aus Derby DB Systemkatalog erzeugen.
  2. Alle Tabellen, die von Beziehung.
  3. generieren Java-Anweisung für Drop alle Tabellen
  4. Verwenden Sie autoCommit () -Methode und setzen diese Methode auf false gesetzt. für die manuelle begehen oder Transaktionen Rollback, wenn Fehler bekam.
  5. Führen Sie Java-Prozess. Viel Glück.

Eine einfachere Lösung ist JDBC zu verwenden „drop-Datenbank foo“ laufen, dann „erstellen Datenbank foo“. Dies wird jedoch alle Objekte in der DB verursacht gelöscht werden (das heißt nicht nur Tabellen).

Wenn Sie an der Eingabeaufforderung arbeiten, anstatt über JDBC, diese sollten Sie gestartet.

SELECT 'DROP TABLE ' || schemaname ||'.' || tablename || ';'
FROM SYS.SYSTABLES
INNER JOIN SYS.SYSSCHEMAS ON SYS.SYSTABLES.SCHEMAID = SYS.SYSSCHEMAS.SCHEMAID
;

Eine einfache Lösung ist die rechte Maustaste zu tun -.> Disconnect dann löschen Sie den Ordner Ihre Datenbank enthalten, und schließen Sie es

Herunterladen Squirrel SQL von http://squirrel-sql.sourceforge.net/

Verbinden Sie

auf die Datenbank.

Erweitern Sie den Tabellenknoten.

die Tabellen auswählen, die Sie wollen fallen.

Rechtsklick und wählen Sie -> Scripts -> Tabellenskripten Schau

Führen Sie die generierten Abfragen

Sie können auch Datensätze auswählen löschen Sie die ausgewählten Tabellen zu leeren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top