Listar las tablas de la base de datos que no necesitan ser calificadas con el nombre del esquema.
Me conecto a un servidor PostgreSQL con: jdbc:postgresql://127.0.0.1/mydb?currentSchema=app96.
Necesito listar las tablas que están presentes y crear aquellas que faltan durante la inicialización de mi servidor.
Aquí está mi código:
final ResultSet rs2 =
conn.getMetaData().getTables(null, “”, null, new String[] { “TABLE” });
while (rs2.next()) {
System.out
.println(rs2.getString(“TABLE_SCHEM”) + “.” + rs2.getString(“TABLE_NAME”));
}
Imprime:
app96.t1
app96.t2
public.administration$account
public.appmodule$uploadedfile
public.audittrail$audittrailsuperclass
…
Desde la documentación de javadoc de getTables:
schemaPattern … “” retrieves those without a schema
Pero parece que getTables trata la cadena vacía de la misma manera que null. ¿Existe una forma pura de JDBC para filtrar por el esquema actual o debo implementar filtros específicos de la base de datos por mi cuenta?
davy.ai
Sí, se puede filtrar por el esquema actual usando el método getTables. Puede especificar el nombre del esquema en el segundo parámetro del método, de esta manera:
final ResultSet rs2 =
conn.getMetaData().getTables(null, “app96”, null, new String[] { “TABLE” });
Esto devolverá solo las tablas en el esquema app96.