Обсуждение: Insert a description while creating a table
Hi, I want to insert descriptions at the columns of my tables but without using the command COMMENT ON. I want to do it together with the table creation. Is that possible? I wanna do something like this: create table test (id serial 'Descripitions about ID',name varchar(50) 'Descriptions about NAME' ); Thanks in advance Luiz. -- ************************* * Luiz Fernando Pinto * * -*- * * Klais Desenvolvimento * * luiz@klais.com.br * *************************
On Wed, 2003-08-13 at 07:56, luiz@klais.com.br wrote: > Hi, > > I want to insert descriptions at the columns of my tables but without > using the command COMMENT ON. I want to do it together with the table > creation. Is that possible? > > I wanna do something like this: > > create table test ( > id serial 'Descripitions about ID', > name varchar(50) 'Descriptions about NAME' > ); Probably not going to happen in the backend. However, you should be able to accomplish that with a little bit of Perl to pre-process the SQL.
create table test (<br /> id serial ,<br /> name varchar(50) <br /> );<br /><br /> <br /> COMMENT ON TABLE"test"<br /> IS 'MySQL table<br /> id_training_form ... id_form_unique';<br /><br /> comment on COLUMN "test"."id"<br/> is 'greigjreoigjreigjore iojrjiogre' ;<br /><br /><br /> Doc postgresql comment<br /><br /><br /> Rod Taylorwrote:<br /><blockquote cite="mid1060776408.86938.12.camel@jester" type="cite"><pre wrap="">On Wed, 2003-08-13 at 07:56,<a class="moz-txt-link-abbreviated" href="mailto:luiz@klais.com.br">luiz@klais.com.br</a> wrote: </pre><blockquotetype="cite"><pre wrap="">Hi, I want to insert descriptions at the columns of my tables but without using the command COMMENT ON. I want to do it together with the table creation. Is that possible? I wanna do something like this: create table test (id serial 'Descripitions about ID',name varchar(50) 'Descriptions about NAME' ); </pre></blockquote><pre wrap=""> Probably not going to happen in the backend. However, you should be able to accomplish that with a little bit of Perl to pre-process the SQL. </pre></blockquote>
> > I want to insert descriptions at the columns of my tables but
without
> > using the command COMMENT ON. I want to do it together with the
table
> > creation. Is that possible?
> >
> > I wanna do something like this:
> >
> > create table test (
> > id serial 'Descripitions about ID',
> > name varchar(50) 'Descriptions about NAME'
> > );
>
> Probably not going to happen in the backend.
>
> However, you should be able to accomplish that with a little bit of
Perl
> to pre-process the SQL.
>
That perl script comes to my mind too.
The reason why Luiz doesn't like it, may be because you can't
see these descriptions within psql using \dd test
I did
the create table, then
COMMENT ON COLUMN test.id is 'Descripitions about ID';
COMMENT ON COLUMN test.name is 'Descriptions about NAME';
\dd test shows
Object descriptionsSchema | Name | Object | Description
--------+------+--------+-------------
(0 rows)
This is odd. OK, I know the doc says
\dd [ pattern ]
Shows the descriptions of objects matching the pattern, or of all
visible objects if no argument is given. But in either case, only objects that have a description are listed.
("Object"covers
aggregates, functions, operators, types, relations (tables, views, indexes, sequences, large objects), rules, and
triggers.)For
example:
Nothing about columns.
But what is the purpose of comments on columns if you can only get them
via
select * from pg_description whereobjoid = (select typrelid from pg_type where typname='test')order by objsubid ;objoid
|classoid | objsubid | description
--------+----------+----------+------------------------- 17326 | 1259 | 1 | Descripitions about ID 17326 |
1259 | 2 | Descriptions about NAME
(2 rows)
which you'll have to find out on your own.
Regards, Christoph
Hi Christoph,
I'm thinking that the best solution is create a script in perl or
python that executes de COMMENT command to me. My initial idea would be
comment my columns in a standard way and then run the script.
My comment that will turn into description will start with
"/*$" instead of the simple "/*", for instance.
Regards,
Luiz.
On Wed, 13 Aug 2003, Christoph Haller wrote:
> > > I want to insert descriptions at the columns of my tables but
> without
> > > using the command COMMENT ON. I want to do it together with the
> table
> > > creation. Is that possible?
> > >
> > > I wanna do something like this:
> > >
> > > create table test (
> > > id serial 'Descripitions about ID',
> > > name varchar(50) 'Descriptions about NAME'
> > > );
> >
> > Probably not going to happen in the backend.
> >
> > However, you should be able to accomplish that with a little bit of
> Perl
> > to pre-process the SQL.
> >
> That perl script comes to my mind too.
> The reason why Luiz doesn't like it, may be because you can't
> see these descriptions within psql using \dd test
>
> I did
> the create table, then
> COMMENT ON COLUMN test.id is 'Descripitions about ID';
> COMMENT ON COLUMN test.name is 'Descriptions about NAME';
> \dd test shows
>
> Object descriptions
> Schema | Name | Object | Description
> --------+------+--------+-------------
> (0 rows)
>
> This is odd. OK, I know the doc says
> \dd [ pattern ]
>
> Shows the descriptions of objects matching the pattern, or of all
> visible objects if no argument is given. But in either case,
> only objects that have a description are listed. ("Object" covers
> aggregates, functions, operators, types, relations (tables, views,
> indexes, sequences, large objects), rules, and triggers.) For
> example:
>
> Nothing about columns.
> But what is the purpose of comments on columns if you can only get them
> via
> select * from pg_description where
> objoid = (select typrelid from pg_type where typname='test')
> order by objsubid ;
> objoid | classoid | objsubid | description
> --------+----------+----------+-------------------------
> 17326 | 1259 | 1 | Descripitions about ID
> 17326 | 1259 | 2 | Descriptions about NAME
> (2 rows)
>
> which you'll have to find out on your own.
>
> Regards, Christoph
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>
>
--
*************************
* Luiz Fernando Pinto *
* -*- *
* Klais Desenvolvimento *
* luiz@klais.com.br *
*************************
On Wed, Aug 13, 2003 at 02:54:59PM +0200, Christoph Haller wrote:
> \dd test shows
>
> Object descriptions
> Schema | Name | Object | Description
> --------+------+--------+-------------
> (0 rows)
>
> This is odd. OK, I know the doc says
> \dd [ pattern ]
>
> Shows the descriptions of objects matching the pattern, or of all
> visible objects if no argument is given. But in either case,
> only objects that have a description are listed. ("Object" covers
> aggregates, functions, operators, types, relations (tables, views,
> indexes, sequences, large objects), rules, and triggers.) For
> example:
>
> Nothing about columns.
> But what is the purpose of comments on columns if you can only get them
> via
> select * from pg_description where
Have you tried \d+ tablename? (sorry for the long lines ";-)
drbob=# \dd object Object descriptionsSchema | Name | Object |
Description
--------+--------+--------+-------------------------------------------------public | object | table | The table that
holdsall instances of objects.
(1 row)
drbob=# \d+ object
Table "public.object" Column | Type |
Modifiers |
Description
------------------+-----------------------------+----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------id
| integer | not null default
nextval('shared_ids'::text) | (global) unique ID for this tableobject_def_id | integer | not
null
| foreign key to object_def.idname | character varying(60) |
| natural name of this objectsuperobject_id | integer |
| foreign key to object.id. This field is only filled in when the this
object is a subobject of another object (EG a port in a router)subobject_def_id | integer |
| foreign key to subobject_def.id. This field is only filled in when this
object is a subobject of another object (EG a port in a router)has_subobject | boolean | not
nulldefault 'FALSE'
| boolean indicating that this object instance has subobjects (EG router
that has ports)date_added | timestamp without time zone |
| date this record was added to the databaseuser_added | character varying(20) |
| username that added this record to the databasedate_changed | timestamp without time zone |
| date this record was last changeduser_changed | character varying(20) |
| username that made the last change to this record
Indexes: pk_object primary key btree (id), object_pk unique btree (id), object_object_def_fk btree
(object_def_id), object_object_fk btree (superobject_id), object_subobject_def_fk btree
(subobject_def_id)
Triggers: tdb_object, tiua_object, tiub_object
--
__________________________________________________
"Nothing is as subjective as reality"
Reinoud van Leeuwen reinoud.v@n.leeuwen.net
http://www.xs4all.nl/~reinoud
__________________________________________________
> On Wed, Aug 13, 2003 at 02:54:59PM +0200, Christoph Haller wrote:
> > \dd test shows
> >
> > Object descriptions
> > Schema | Name | Object | Description
> > --------+------+--------+-------------
> > (0 rows)
> >
> > This is odd. OK, I know the doc says
> > \dd [ pattern ]
> >
> > Shows the descriptions of objects matching the pattern, or of
all
> > visible objects if no argument is given. But in either case,
> > only objects that have a description are listed. ("Object"
covers
> > aggregates, functions, operators, types, relations (tables, views,
> > indexes, sequences, large objects), rules, and triggers.) For
> > example:
> >
> > Nothing about columns.
> > But what is the purpose of comments on columns if you can only get
them
> > via
> > select * from pg_description where
>
> Have you tried \d+ tablename? (sorry for the long lines ";-)
>
I apologize for complaining, missed that completely.
Thanks to Reinoud for pointing this out.
Regards, Christoph
<pre wrap="">comment on table "test" is 'fziofeiozfiezojfezjfeziojfeziojf ezfjioezifj ezio' ; </pre><br /><br /> Rod Taylor wrote:<br /><blockquote cite="mid1060776408.86938.12.camel@jester" type="cite"><pre wrap="">OnWed, 2003-08-13 at 07:56, <a class="moz-txt-link-abbreviated" href="mailto:luiz@klais.com.br">luiz@klais.com.br</a>wrote: </pre><blockquote type="cite"><pre wrap="">Hi, I want to insert descriptions at the columns of my tables but without using the command COMMENT ON. I want to do it together with the table creation. Is that possible? I wanna do something like this: create table test (id serial 'Descripitions about ID',name varchar(50) 'Descriptions about NAME' ); </pre></blockquote><pre wrap=""> Probably not going to happen in the backend. However, you should be able to accomplish that with a little bit of Perl to pre-process the SQL. </pre></blockquote>