Question

Est-il possible d'inspecter et de modifier par la suite un schéma existant en mode autonome Hsqldb? Je l'ai essayé de regarder le fichier en utilisant l'outil intégré d'administration ainsi que brancher Écureuil client SQL.

Je suis particulièrement intéressé par ce que les clés primaires existent sur différentes tables. Y at-il une commande équivalente à de MySql 'show create table ...' ou 'décrire'?

Était-ce utile?

La solution

Le sqltool \ d commande se rapproche d'un "décrire", et les informations de clé primaire est stocké sous la 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)

Autres conseils

Le SqlTool \ dt commande affichera tous les noms de table, et \ d? commande affichera toutes les 'décrire' options.

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
    ...
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top