Pregunta

¿Cómo elimino todas las tablas del esquema en Apache Derby DB usando JDBC?

¿Fue útil?

Solución

Para el código real que hace esto, marque CleanDatabaseTestSetup.java en la sección del conjunto de pruebas Derby de la distribución Derby.

Otros consejos

Gracias a el blog :

Paso 1:

Ejecute la instrucción SQL, pero no olvide reemplazar el nombre de esquema 'APP' con su nombre de esquema en las 2 ocurrencias a continuación:

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';

Paso 2:

El resultado de la ejecución anterior es un conjunto de instrucciones SQL, cópielas en el editor SQL, ejecútelas, luego se eliminan las restricciones y las tablas.

Haz un pequeño método en Java en el que ejecutes un

DROP TABLE [tablename]

tablename se pasa por parámetro.

Y otro método en el que recorre un conjunto de registros formado por la consulta

SELECT tablename FROM SYSTABLES

llamando al primer método.

última documentación de Derby

Creo que la mayoría de los proveedores de db no permiten DROP TABLE * (o similar).

Creo que la mejor manera sería MOSTRAR TABLAS y luego realizar cada eliminación en bucle a través de un conjunto de resultados.

HTH.

JDBC le permite resolver su tarea de manera independiente de la base de datos:

  1. Abrir la conexión
  2. Agarra el DatabaseMetaData
  3. Úselo para enumerar todas las tablas en su base de datos JavaDoc
  4. Iterar sobre el conjunto de resultados y disparar la TABLA DE GOTA para cada tabla
  1. debe generar el esquema y el nombre de la tabla del catálogo del sistema Derby DB.
  2. Ordenar todas las tablas por relación.
  3. Generar instrucción java para descartar todas las tablas
  4. Utilice el método autoCommit () y establezca este método en falso. para la confirmación manual o las operaciones de reversión cuando hay errores.
  5. Ejecute su proceso java. Buena suerte.

Una solución más simple es usar JDBC para ejecutar " soltar la base de datos foo " luego " crear base de datos foo " ;. Sin embargo, esto hará que se eliminen todos los objetos en la base de datos (es decir, no solo las tablas).

Si está trabajando desde el símbolo del sistema en lugar de hacerlo a través de JDBC, esto debería ayudarlo a comenzar.

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

Una solución simple es hacer clic derecho - > desconecte y luego elimine la carpeta que contiene su base de datos y vuelva a conectarla.

Descargue Squirrel SQL de http://squirrel-sql.sourceforge.net/

Conéctese a la base de datos.

Expanda el nodo TABLE.

Seleccione las tablas que desea soltar.

Haga clic derecho y seleccione - > Scripts - > Descartar guiones de tabla

Ejecuta las consultas generadas

Incluso puede seleccionar eliminar registros para vaciar las tablas seleccionadas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top