2010-03-09 64 views
4

是否可以检查并随后修改Hsqldb独立模式下的现有模式?我已经尝试使用内置的管理工具查看文件以及连接SQuirrel SQL Client。检查Hsqldb Schema

我特别感兴趣的是在各种表上存在主键。是否有相当于MySql的'show create table ...'或'describe'的命令?

回答

5

sqltool\ d命令近似于 “描述”,和主密钥信息被下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)

1

的虽然SqlTool \ dt的命令将显示所有表名,并且\ d?命令将显示所有“描述”选项。

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 
    ...