2010-03-09 2 views
4

Возможно ли проверить и впоследствии изменить существующую схему в автономном режиме Hsqldb? Я попытался посмотреть файл, используя встроенный инструмент администрирования, а также подключить SQuirrel SQL Client.Inspect Hsqldb Schema

Меня особенно интересуют, какие первичные ключи существуют на разных таблицах. Есть ли команда, эквивалентная MySql 'show create table ...' или 'describe'?

ответ

5

sqltool\ д команды аппроксимируют "описывают", а первичный ключ информация хранится под 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 \ дт Команда покажет все имена таблиц и \ 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 
    ...