2009-02-26 4 views
32

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 vendeur, et non SQL, mais le point est: comment puis-je voir les tableaux afin que je puisse les laisser tomber/les modifier?Comment voir toutes les tables dans une base de données HSQLDB?

+0

Quelle base de données utilisez-vous. La réponse dépend grandement. –

+1

Désolé, j'ai ajouté un tag mais j'ai oublié de mentionner que j'utilise Hsqldb – nobody

+1

Honnêtement, le titre m'a dit ce qu'est le BDMS. – will

Répondre

40

La norme ANSI SQL92 pour interroger les métadonnées de base de données est contenue dans les structures de données INFORMATION_SCHEMA.

Je ne sais pas si votre base de données prend en charge ou pas, mais essayez ce qui suit

SELECT * 
FROM INFORMATION_SCHEMA.TABLES 

Sur d'autres recherches, il semble que hsqldb ne supporte INFORMATION_SCHEMA mais avec un peu nommage non standard.

Toutes les tables ont SYSTEM_ les préfixé donc l'exemple ci-dessus lire

SELECT * 
FROM INFORMATION_SCHEMA.SYSTEM_TABLES 

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

+2

Il semble que Hsqldb ne supporte pas cela, mais merci. – nobody

+1

Donc j'ai juste besoin d'ajouter où TABLE_TYPE = 'TABLE' et je l'ai eu ... merci pour votre aide! Et les bonnes nouvelles, selon le lien que vous avez posté, c'est que, pour les nouvelles versions, elles vont suivre la norme. Merci encore. – nobody

+0

Table introuvable: TABLES dans l'instruction [SELECT * FROM INFORMATION_SCHEMA.TABLES] – cherouvim

1

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

12

Génial, merci! Vous avez parcouru le Web pour obtenir cette information. Cela ira chercher uniquement les informations sur le terrain 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 les index, les informations clé primaire, tous les trucs de kindza de INFORMATION_SCHEMA.SYSTEM_TABLES. Vous devez aimer la documentation: p

+0

il n'y a pas de table dans HSQLDB après l'exécution en utilisant SELECT ... FROM INFORMATION_SCHEMA.SYSTEM_COLUMNS O TABLE TABLE_NAME N'EST PAS COMME 'SYSTEM_%' dans jdbc: hsqldb: mem: comme connexion URL. Donc, le format de connexion n'est pas pour la requête, mais il peut se connecter à l'arrière, non? – parsifal

+0

Cette requête fonctionne parfaitement, m'a fait gagner du temps. J'utilise HSQL 2.3.2 – cbaldan

0

Vous lancez l'interrogation en utilisant hsql database manager, et vous? si vous utilisez cette option, ci-dessous peut donner quelques conseils:

sélectionnez votre connexion

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

vous naviguerez la base de données.

3

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

  • Mettez vos informations de connexion de base de données dans « ~/sqltool.rc » et choisissez l'NOMBDD que vous voulez , remplacez le nom d'utilisateur et le mot de passe corrects si vous le connaissez.
    • NOMBDD urlid
    • url jdbc: hsqldb:/chemin/vers/hsql/base de données
    • nom d'utilisateur sa
    • mot de passe
  • outil d'installation avec: apt-get install hsqldb-utils (sur Ubuntu)
  • Se connecter avec: hsqldb-SqlTool NOMBDD # sur Ubuntu
  • Conseil pour d'autres systèmes: java -jar YourHsqlJar.jar NOMBDD
  • Afficher les tableaux avec: \ dt
  • Afficher les colonnes avec: \ d TABLENAME
  • Requêtes standard telles que: SELECT * FROM ...;
  • Edit (ajouter) de la dernière commande avec:: un
  • Quit avec: \ q
  • Voir les commandes spéciales avec: \? OU :?

Bonne chance! Utilisez la commande "\ dt" lorsque vous tapez l'invite "> sql" dans la ligne de commande pour HSQLDB "

Questions connexes