web-dev-qa-db-fra.com

Comment voir toutes les tables d'une base de données HSQLDB?

J'utilise habituellement SQLDeveloper pour parcourir la base de données, mais je ne pouvais pas le faire fonctionner avec hsqldb et je ne sais pas quelles tables sont déjà créées .... Je suppose que c'est une question spécifique au fournisseur, et non pas à SQL simple, mais le problème est: comment puis-je voir les tableaux pour pouvoir les supprimer/les modifier?

36
nobody

La norme ANSI SQL92 pour l'interrogation des métadonnées de la base de données est contenue dans les structures de données INFORMATION_SCHEMA.

Je ne sais pas si votre base de données le supporte ou non, mais essayez ce qui suit.

SELECT *
FROM   INFORMATION_SCHEMA.TABLES

Des recherches plus poussées semblent indiquer que hsqldb prend en charge INFORMATION_SCHEMA mais avec une dénomination légèrement non standard.

SYSTEM_ est ajouté à toutes les tables afin que l'exemple ci-dessus se lise

SELECT *
FROM   INFORMATION_SCHEMA.SYSTEM_TABLES

Je n'ai aucun moyen de tester cela et la réponse a été trouvée sur sourceforge

40
Steve Weet

Génial merci! Vous avez parcouru le Web à la recherche de ces informations . Ceci ne récupère que les informations de champs de vos tables:

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

Vous pouvez récupérer des index, des informations sur la clé primaire et tout ce qui est kindza à partir du INFORMATION_SCHEMA.SYSTEM_TABLES.

12
Jeff

Si vous êtes sur la ligne de commande, vous pouvez essayer le Hsqldb SqlTool, documenté à http://hsqldb.org/doc/2.0/util-guide/sqltool-chapt.html

  • Mettez vos informations de connexion à la base de données dans "~/sqltool.rc" et choisissez le DBNAME de votre choix, remplacez le nom d'utilisateur et le mot de passe corrects s'ils sont connus .
    • urlid DBNAME
    • url jdbc: hsqldb:/chemin/vers/hsql/base de données
    • nom d'utilisateur sa
    • mot de passe
  • Installer l'outil avec: apt-get install hsqldb-utils (sur Ubuntu)
  • Connectez-vous avec: hsqldb-sqltool DBNAME # sur Ubuntu
  • Astuce pour les autres systèmes: Java -jar YourHsqlJar.jar DBNAME
  • Afficher les tables avec:\dt
  • Afficher les colonnes avec:\d TABLENAME
  • Requêtes standard telles que: SELECT * FROM ...;
  • Editer (ajouter) la dernière commande avec:: a
  • Quitter avec:\q
  • Afficher les commandes spéciales avec: \? OR:?

Bonne chance!

4
Mister_Tom

Utilisez la commande "\ dt" lorsque vous cliquez sur l'invite "> sql" dans la ligne de commande pour HSQLDB.

2
specialk1st

Consultez DBVisualiser et SQuirreL SQL Client . Tous les deux ont un support pour hsqldb, et une interface graphique pour éditer/visualiser/modifier les tables.

1
anand.trex

Vous exécutez une requête en utilisant hsql database manager, êtes-vous? Si vous utilisez ceci, ci-dessous peut donner quelques indices:

sélectionnez votre connexion 

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

alors vous allez parcourir la base de données.

0
parsifal