2010-11-26 42 views
2

Existe-t-il un équivalent à MySQL SHOW CREATE TABLE <tablename> dans informix? Je voudrais l'exécuter dans le Gestionnaire SQL sur le Studio de serveur et voudrais également obtenir des informations sur les colonnes d'une table et leurs types. Est-ce possible? J'ai trouvé les systables, syscolumns et le schéma d'information, mais n'a pas été chanceux avec les résultats que j'ai obtenus avec la sortie de select * from....Informix équivalent à MySQL SHOW CREATE TABLE

Répondre

5

Je ne connais pas cette commande SQL. A partir de la ligne de commande, vous pouvez utiliser l'utilitaire dbschema:

C:\Informix>dbschema -t abc -d test 
DBSCHEMA Schema Utility  INFORMIX-SQL Version 11.50.TC6DE 

{ TABLE "informix".abc row size = 4 number of columns = 1 index size = 0 } 
create table "informix".abc 
    (
    xxx integer 
); 

revoke all on "informix".abc from "public" as "informix"; 

Si vous voulez lire SysTables, puis regardez mon script qui dépotoirs d'informations sur les tables, des colonnes, des index, etc: http://code.activestate.com/recipes/576621-dump-informix-schema-to-text/?in=user-186902. Dans sa source, vous trouverez des requêtes systables que vous pouvez utiliser.

1

Vous pouvez également obtenir les noms de colonnes et types de base à partir de DB-Access ou ISQL avec

INFO COLUMNS FOR <table> 

Je ne sais pas si cela fonctionne dans SQL Manager ou non, mais il ne coûte rien d'essayer.

+0

L'instruction INFO est comme SORTIE, CHARGE et UNLOAD - il est une instruction SQL synthétique qui est reconnu par la DB-Access ou ISQL frontal et non par le serveur de base de données en soi. Le serveur frontal traduit la requête en actions appropriées envoyées au serveur. Dans le cas d'INFO, l'interface frontale formate alors la réponse de manière assez extensive. Donc, vous ne pouvez pas utiliser ces instructions avec ODBC. –

0

Cette instruction SQL énumère les colonnes et les types, mais pas par défaut, etc.

select 
    t.tabname, c.* 
from 
    systables t 
join 
    syscolumns c 
on 
    t.tabid = c.tabid 
where 
    t.tabname = 'table'