2010-11-26 3 views
2

Gibt es eine Entsprechung zu MySQL SHOW CREATE TABLE <tablename> in informix? Ich möchte es im SQL Manager auf dem Server Studio ausführen und möchte auch Informationen über eine Tabellenspalten und ihre Typen erhalten. Ist das möglich? Ich habe die systables, syscolumns und das Informationsschema gefunden, aber war nicht glücklich mit den Ergebnissen, die ich mit der Ausgabe von select * from... erhielt.Informix entspricht mysqls SHOW CREATE TABLE

Antwort

5

Ich kenne solche SQL-Befehl nicht. Von der Kommandozeile können Sie dbschema Dienstprogramm verwenden:

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"; 

Wenn Sie systables lesen möchten, dann an meinem Skript suchen, die Info-Dumps über Tabellen, Spalten, Indizes etc: http://code.activestate.com/recipes/576621-dump-informix-schema-to-text/?in=user-186902. In der Quelle finden Sie systables Abfragen, die Sie verwenden können.

1

Sie können auch die grundlegenden Spaltennamen und -typen aus DB-Access oder ISQL erhalten mit

INFO COLUMNS FOR <table> 

Ich weiß nicht, ob diese in SQL Manager funktioniert oder nicht, aber es kostet nichts zu versuchen.

+0

Die INFO-Anweisung ist wie OUTPUT, LOAD und UNLOAD - es ist eine synthetische SQL-Anweisung, die von dem DB-Zugriff erkannt wird oder ISQL-Frontend und nicht vom Datenbankserver an sich. Das Front-End übersetzt die Anforderung in entsprechende Aktionen, die an den Server gesendet werden. Im Falle von INFO formatiert das Front-End die Antwort dann sehr ausführlich. Sie können diese Anweisungen daher nicht mit ODBC verwenden. –

0

Diese SQL-Anweisung listet Spalten und Typen, aber nicht standardmäßig usw.

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