2009-02-26 27 views
32

Normalmente utilizo SQLDeveloper para explorar la base de datos, pero no pude hacer que funcione con hsqldb y no sé qué tablas ya están creadas ... Supongo que es una pregunta específica del proveedor, y no sql simple, pero el punto es: ¿cómo puedo ver las tablas para poder colocarlas/modificarlas?¿Cómo ver todas las tablas en una base de datos HSQLDB?

+0

Qué base de datos está utilizando. La respuesta depende en gran medida. –

+1

Lo siento, agregué una etiqueta, pero olvidé mencionar que estoy usando Hsqldb – nobody

+1

Honestamente, el título me dijo lo que es el BDMS. – will

Respuesta

40

El estándar ANSI SQL92 para consultar los metadatos de la base de datos se encuentra dentro de las estructuras de datos INFORMATION_SCHEMA.

no tengo ni idea de si su base de datos es compatible con esto o no, pero intente lo siguiente

SELECT * 
FROM INFORMATION_SCHEMA.TABLES 

En futuras investigaciones, parece que no hsqldb apoyar INFORMATION_SCHEMA pero con nombres poco no estándar.

Todas las mesas tienen System_ antepone a ellos por lo que el ejemplo anterior se leería

SELECT * 
FROM INFORMATION_SCHEMA.SYSTEM_TABLES 

tengo ningún medio de experimentar esto y la respuesta fue encontrado en sourceforge

+2

Parece que Hsqldb no lo admite, pero gracias. – nobody

+1

Así que solo necesito agregar donde TABLE_TYPE = 'TABLE' y lo obtuve ... ¡gracias por su ayuda! Y la buena noticia es que, según el enlace que publicas, para las nuevas versiones, seguirán el estándar. Gracias de nuevo. – nobody

+0

Tabla no encontrada: TABLAS en instrucción [SELECCIONAR * FROM INFORMATION_SCHEMA.TABLES] – cherouvim

12

Impresionante, gracias! He estado buscando en la web esa información. Esto obtendrá única información de campo de las tablas:

SELECT TABLE_NAME, COLUMN_NAME, TYPE_NAME, COLUMN_SIZE, DECIMAL_DIGITS, IS_NULLABLE FROM INFORMATION_SCHEMA.SYSTEM_COLUMNS WHERE TABLE_NAME NOT LIKE 'SYSTEM_%' 

Puede recuperar los índices, información clave primaria, toda la materia kindza de INFORMATION_SCHEMA.SYSTEM_TABLES. Me encanta la documentación de oo: p

+0

no hay ninguna tabla en HSQLDB después de ejecutarse usando SELECT ... FROM INFORMATION_SCHEMA.SYSTEM_COLUMNS DONDE TABLE_NAME NO ME GUSTA 'SYSTEM_%' en jdbc: hsqldb: mem: como conexión URL. Entonces, el formato de conexión no es para consulta, pero puede conectarse en el back-end, ¿verdad? – parsifal

+0

Esa consulta funciona perfectamente, me salvó un poco de tiempo. Estoy usando HSQL 2.3.2 – cbaldan

0

Ejecuta consultas usando hsql database manager, ¿verdad? si se utiliza este, a continuación puede dar algunas pistas:

seleccionar el tipo de conexión

  1. : HSQL DATABASE ENGINE SERVER
  2. Conductor: jdbc.hsqldb.jdbcDriver
  3. URL: jdbc:hsqldb:hsql://localhost/

entonces hojeará la base de datos.

3

Si estás en la línea de comandos, es posible que desee probar el hsqldb SQLtool, documentado en http://hsqldb.org/doc/2.0/util-guide/sqltool-chapt.html

  • Ponga su información de conexión de base de datos en "~/sqltool.rc" y elegir cualquier DBNAME desea , sustituya el nombre de usuario y la contraseña correctos, si los conoce.
    • DBNAME urlid
    • JDBC URL: hsqldb:/ruta/a/hsql/base de datos
    • nombre de usuario sa
    • contraseña
  • herramienta de instalación con: apt-get install HSQLDB-utils (en Ubuntu)
  • Conéctate con: hsqldb-SQLtool DBNAME # en Ubuntu
  • Indirecta para otros sistemas: java-jar YourHsqlJar.jar DBNAME
  • Mostrar tablas con: \ dt
  • Mostrar columnas con: \ d TABLENAME
  • Consultas estándar como: SELECCIONAR * FROM ...;
  • Editar (append) último comando con:: un
  • Cierre con: \ q
  • Ver comandos especiales con: \? O:?

¡Buena suerte!

1

Utilice el comando "\ dt" cuando presione el símbolo "> sql" en la línea de comandos para HSQLDB.

Cuestiones relacionadas