---------- Forwarded message ---------- Date: Fri, 19 Oct 2001 08:22:46 -0600 From: David Eduardo Gomez Noguera <[EMAIL PROTECTED]> To: "Ron de Jong" <[EMAIL PROTECTED]> Cc: [EMAIL PROTECTED] Subject: Re: [HACKERS] Is there no "DESCRIBE <TABLE>;" on PGSQL? help!!!
on psql, do \? there are a lot of commands that let you do it: \l (this list databases) dabicho=# \l List of databases Database | Owner | Encoding -------------+----------+----------- agenda | dabicho | SQL_ASCII cele | dabicho | SQL_ASCII dabicho | dabicho | SQL_ASCII diccionario | dabicho | SQL_ASCII imagenes | dabicho | SQL_ASCII libros | dabicho | SQL_ASCII mp3 | dabicho | SQL_ASCII postgres | postgres | SQL_ASCII template0 | postgres | SQL_ASCII template1 | postgres | SQL_ASCII (10 rows) mp3=# \d (this list tables on the current db) List of relations Name | Type | Owner ----------------+----------+--------- album | table | dabicho album_id_seq | sequence | dabicho artista | table | dabicho artista_id_seq | sequence | dabicho dirpath | table | dabicho dirpath_id_seq | sequence | dabicho genero | table | dabicho genero_id_seq | sequence | dabicho mp3 | table | dabicho mp3_id_seq | sequence | dabicho pga_forms | table | dabicho pga_layout | table | dabicho pga_queries | table | dabicho pga_reports | table | dabicho pga_schema | table | dabicho pga_scripts | table | dabicho mp3=# \d mp3 (this describes a table (mp3) Table "mp3" Attribute | Type | Modifier ---------------+-------------------+------------------------------------------------ id | integer | not null default nextval('"mp3_id_seq"'::text) fk_dirpath_id | integer | not null filename | character varying | not null titulo | text | not null default 'unknown' fk_artista_id | integer | not null default 1 fk_album_id | integer | not null default 1 comentario | text | not null default 'none' year | integer | default 2001 genero | smallint | not null default 1 Indices: mp3_fk_dirpath_id_key, mp3_pkey with \pset you can set output format. mp3=# \pset expanded Expanded display is on. mp3=# \d mp3 Table "mp3" -[ RECORD 1 ]--------------------------------------------- Attribute | id Type | integer Modifier | not null default nextval('"mp3_id_seq"'::text) -[ RECORD 2 ]--------------------------------------------- Attribute | fk_dirpath_id Type | integer Modifier | not null -[ RECORD 3 ]--------------------------------------------- .... there are many combinations mp3=# \pset border 2 Border style is 2. mp3=# \d mp3 Table "mp3" +---------------+-------------------+------------------------------------------------+ | Attribute | Type | Modifier | +---------------+-------------------+------------------------------------------------+ | id | integer | not null default nextval('"mp3_id_seq"'::text) | | fk_dirpath_id | integer | not null | | filename | character varying | not null | | titulo | text | not null default 'unknown' | | fk_artista_id | integer | not null default 1 | | fk_album_id | integer | not null default 1 | | comentario | text | not null default 'none' | | year | integer | default 2001 | | genero | smallint | not null default 1 | +---------------+-------------------+------------------------------------------------+ Indices: mp3_fk_dirpath_id_key, mp3_pkey pretty much the same, and fairly human readable to me. (although not everything sorted in columns, i guess you could do querys to the system tables to get that, or use awk to get the bits you want =) ) I just this the postgres team has don an excelent work so far. Reply. > Any idea to get a human readable list with column descriptions like > type,size,key,default,null. > It would be nice if it would look simular to the mysql variant: > > mysql> describe employee; > +-----------+----------+------+-----+---------+----------------+ > | Field | Type | Null | Key | Default | Extra | > +-----------+----------+------+-----+---------+----------------+ > | Id | int(11) | | PRI | NULL | auto_increment | > | FirstName | char(30) | | MUL | | | > | LastName | char(30) | | | | | > | Infix | char(10) | YES | | NULL | | > | Address1 | char(30) | YES | | NULL | | > | PostCode | char(10) | YES | | NULL | | > | Town | int(11) | YES | | NULL | | > +-----------+----------+------+-----+---------+----------------+ > > Cheers, Ron. > > > -- ICQ: 15605359 Bicho =^..^= First, they ignore you. Then they laugh at you. Then they fight you. Then you win. Mahatma Gandhi. ........Por que no pensaran los hombres como los animales? Pink Panther........ -------------------------------気検体の一致------------------------------------ 暑さ寒さも彼岸まで。 アン アン アン とっても大好き > on psql, do \? there are a lot of commands that let you do it: > > \l (this list databases) > dabicho=# \l > List of databases > Database | Owner | Encoding > -------------+----------+----------- > agenda | dabicho | SQL_ASCII > cele | dabicho | SQL_ASCII > dabicho | dabicho | SQL_ASCII > diccionario | dabicho | SQL_ASCII > imagenes | dabicho | SQL_ASCII > libros | dabicho | SQL_ASCII > mp3 | dabicho | SQL_ASCII > postgres | postgres | SQL_ASCII > template0 | postgres | SQL_ASCII > template1 | postgres | SQL_ASCII > (10 rows) > > mp3=# \d (this list tables on the current db) > List of relations > Name | Type | Owner > ----------------+----------+--------- > album | table | dabicho > album_id_seq | sequence | dabicho > artista | table | dabicho > artista_id_seq | sequence | dabicho > dirpath | table | dabicho > dirpath_id_seq | sequence | dabicho > genero | table | dabicho > genero_id_seq | sequence | dabicho > mp3 | table | dabicho > mp3_id_seq | sequence | dabicho > pga_forms | table | dabicho > pga_layout | table | dabicho > pga_queries | table | dabicho > pga_reports | table | dabicho > pga_schema | table | dabicho > pga_scripts | table | dabicho > > > mp3=# \d mp3 (this describes a table (mp3) > Table "mp3" > Attribute | Type | Modifier > ---------------+-------------------+------------------------------------------------ > id | integer | not null default nextval('"mp3_id_seq"'::text) > fk_dirpath_id | integer | not null > filename | character varying | not null > titulo | text | not null default 'unknown' > fk_artista_id | integer | not null default 1 > fk_album_id | integer | not null default 1 > comentario | text | not null default 'none' > year | integer | default 2001 > genero | smallint | not null default 1 > Indices: mp3_fk_dirpath_id_key, > mp3_pkey > > with \pset you can set output format. > > mp3=# \pset expanded > Expanded display is on. > mp3=# \d mp3 > Table "mp3" > -[ RECORD 1 ]--------------------------------------------- > Attribute | id > Type | integer > Modifier | not null default nextval('"mp3_id_seq"'::text) > -[ RECORD 2 ]--------------------------------------------- > Attribute | fk_dirpath_id > Type | integer > Modifier | not null > -[ RECORD 3 ]--------------------------------------------- > .... > there are many combinations > mp3=# \pset border 2 > Border style is 2. > mp3=# \d mp3 > Table "mp3" > >+---------------+-------------------+------------------------------------------------+ > | Attribute | Type | Modifier >| > >+---------------+-------------------+------------------------------------------------+ > | id | integer | not null default nextval('"mp3_id_seq"'::text) >| > | fk_dirpath_id | integer | not null >| > | filename | character varying | not null >| > | titulo | text | not null default 'unknown' >| > | fk_artista_id | integer | not null default 1 >| > | fk_album_id | integer | not null default 1 >| > | comentario | text | not null default 'none' >| > | year | integer | default 2001 >| > | genero | smallint | not null default 1 >| > >+---------------+-------------------+------------------------------------------------+ > Indices: mp3_fk_dirpath_id_key, > mp3_pkey > > pretty much the same, and fairly human readable to me. (although not everything >sorted in columns, i guess you could do querys to the system tables to get that, or >use awk to get the bits you want =) ) > I just this the postgres team has don an excelent work so far. > > Reply. > > Any idea to get a human readable list with column descriptions like > > type,size,key,default,null. > > It would be nice if it would look simular to the mysql variant: > > > > mysql> describe employee; > > +-----------+----------+------+-----+---------+----------------+ > > | Field | Type | Null | Key | Default | Extra | > > +-----------+----------+------+-----+---------+----------------+ > > | Id | int(11) | | PRI | NULL | auto_increment | > > | FirstName | char(30) | | MUL | | | > > | LastName | char(30) | | | | | > > | Infix | char(10) | YES | | NULL | | > > | Address1 | char(30) | YES | | NULL | | > > | PostCode | char(10) | YES | | NULL | | > > | Town | int(11) | YES | | NULL | | > > +-----------+----------+------+-----+---------+----------------+ > > > > Cheers, Ron. > > > > > > > > > > -- > ICQ: 15605359 Bicho > =^..^= > First, they ignore you. Then they laugh at you. Then they fight you. Then you win. >Mahatma Gandhi. > ........Por que no pensaran los hombres como los animales? Pink Panther........ > -------------------------------気検体の一致------------------------------------ > 暑さ寒さも彼岸まで。 > アン アン アン とっても大好き -- ICQ: 15605359 Bicho =^..^= First, they ignore you. Then they laugh at you. Then they fight you. Then you win. Mahatma Gandhi. ........Por que no pensaran los hombres como los animales? Pink Panther........ -------------------------------気検体の一致------------------------------------ 暑さ寒さも彼岸まで。 アン アン アン とっても大好き ---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly