4

Hsqldbスタンドアロンモードで既存のスキーマを検査し、その後変更することは可能ですか?組み込みの管理ツールを使用してファイルを確認し、SQuirrelSQLクライアントを接続してみました。

さまざまなテーブルに存在する主キーに特に興味があります。MySqlの「showcreatetable...」または「describe」に相当するコマンドはありますか?

4

2 に答える 2

5

sqltool \ dコマンドは「describe」を近似し、主キー情報はINFORMATION_SCHEMA:の下に格納されます。

sql> CREATE SCHEMA STACKOVERFLOW;
sql> SET SCHEMA STACKOVERFLOW;
sql> CREATE TABLE SO2406470 (pk1 INT NOT NULL, pk2 INT NOT NULL, data VARCHAR(64), PRIMARY KEY(pk1, pk2));
sql> \d SO2406470
name  datatype  width  no-nulls
----  --------  -----  --------
PK1   INTEGER      11  *
PK2   INTEGER      11  *
DATA  VARCHAR      64  
sql> SELECT * FROM INFORMATION_SCHEMA.SYSTEM_PRIMARYKEYS WHERE TABLE_SCHEM = CURRENT_SCHEMA AND TABLE_NAME = 'SO2406470';
TABLE_CAT  TABLE_SCHEM    TABLE_NAME  COLUMN_NAME  KEY_SEQ  PK_NAME
---------  -------------  ----------  -----------  -------  ------------
PUBLIC     STACKOVERFLOW  SO2406470   PK1                1  SYS_PK_10040
PUBLIC     STACKOVERFLOW  SO2406470   PK2                2  SYS_PK_10040

Fetched 2 rows

(hsqldb-2.0.0rc9)

于 2010-05-04T19:41:22.980 に答える
1

sqltool \ dtコマンドは、すべてのテーブル名と\ d?を表示します。コマンドはすべての「describe」オプションを表示します。

sql> \dt
TABLE_SCHEM  TABLE_NAME
-----------  ---------------
PUBLIC       APP_CFG
PUBLIC       CFG_REFRESH_LOG
...
sql> \d?
\dX [parameter...] where X is one of the following.
    a:  list Aliases
    c:  list Catalogs
    i:  list Indexes (for some databases, must specify literal target table)
    n:  list schema Names
    r:  list Roles
    s:  list Sequences
    S:  list System tables
    t:  list Tables
    u:  list Users
    v:  list Views
    *:  list table-like objects
    ...
于 2013-04-03T03:05:02.333 に答える