web-dev-qa-db-ja.com

HSQLDBデータベース内のすべてのテーブルを表示する方法は?

私は通常SQLDeveloperを使用してデータベースを参照しますが、HSQLDBで動作させることができず、どのテーブルがすでに作成されているのかわかりません。テーブルをドロップ/変更できるように表示できますか?

39
nobody

データベースメタデータのクエリに関するANSI SQL92標準は、INFORMATION_SCHEMAデータ構造。

データベースがこれをサポートしているかどうかはわかりませんが、次のことを試してください。

SELECT *
FROM   INFORMATION_SCHEMA.TABLES

さらなる調査では、HSQLDBは​​INFORMATION_SCHEMAが、わずかに非標準の命名法で。

すべてのテーブルにはSYSTEM_*が先頭に追加されるため、上記の例は次のようになります

SELECT *
FROM   INFORMATION_SCHEMA.SYSTEM_TABLES

これをテストする手段はなく、答えは sourceforge で見つかりました。

42
Steve Weet

素晴らしいです、ありがとう!その情報を求めてWebを探し回っています。これにより、テーブルのフィールド情報のみが取得されます。

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

INFORMATION_SCHEMA.SYSTEM_TABLESから、インデックス、主キー情報、あらゆる種類のものを取得できます。 Gooo love oo documentation:p

13
Jeff

コマンドラインを使用している場合は、 SqlTool Manual (hsqldb.org)に記載されているHsqldb SqlToolを試してください。

  • データベース接続情報を「~/sqltool.rc」に入れて、必要なDBNAMEを選択し、既知の場合は正しいユーザー名とパスワードに置き換えます。
    • urlid DBNAME
    • url jdbc:hsqldb:/path/to/hsql/database
    • ユーザー名SA
    • パスワード
  • apt-get install hsqldb-utils(Ubuntu上)でツールをインストールします
  • Ubuntuでhsqldb-sqltool DBNAME#に接続します
  • 他のシステムのヒント:Java -jar YourHsqlJar.jar DBNAME
  • \dtでテーブルを表示する
  • 次の列を表示:\ d TABLENAME
  • 次のような標準クエリ:SELECT * FROM …;
  • 最後のコマンドを編集(追加)する::a
  • 次で終了:\q
  • 特別なコマンドを表示するには:\? OR :?

幸運を!

4
Mister_Tom

使用 \dtコマンドを押すと、>sql HSQLDBのコマンドラインでプロンプトを表示します。

2
specialk1st

DBVisualiser および SQuirreL SQL Client を確認してください。これらは両方とも、HSQLDBのサポートと、テーブルの編集/変更/表示のためのGUIを備えています。

1
anand.trex

hsql database managerを使用してクエリを実行していますか?これを使用する場合、以下にいくつかのヒントがあります。

接続を選択します。

  1. タイプ:HSQL DATABASE ENGINE SERVER
  2. ドライバー:jdbc.hsqldb.jdbcDriver
  3. URL:jdbc:hsqldb:hsql://localhost/

次に、データベースを参照します。

0
parsifal