Thanks again Alban. I didn't mention but if I remove the braces then it
gives below error but the meaning is same as the error when I specify
braces.

techdb=# SELECT insert_history_info();
ERROR:  error from Perl function "insert_history_info": each EXCEPT query
must have the same number of columns at line 15.

Thanks,
Dipti

On Fri, Apr 23, 2010 at 6:59 PM, Alban Hertroys <
dal...@solfertje.student.utwente.nl> wrote:

> On 23 Apr 2010, at 14:28, dipti shah wrote:
>
> > Great!  Thanks Alban, Alexander, and Thomas.
> >
> > That solved the issue but could you tell me what is the issue when I give
> brackets in second query?
> >
> > techdb=# INSERT INTO changelogtest (id, txid, txtime) values (5, 123,
> now())
> > except select (id, txid, txtime)
> > from changelogtest
> > where id=5;
> > ERROR:  each EXCEPT query must have the same number of columns
> > LINE 2: except select (id, txid, txtime)
>
> > I need brackets because this query actually I am using from trigger like
> below and it gives the same error: Could you please help me with it.
> >
> > CREATE OR REPLACE FUNCTION insert_history_info()
> >   RETURNS VOID AS
> > $BODY$
> > my $query = (<<ENDQUERY);
> >     INSERT INTO changelogtest(id, txid, txtime)
> >     SELECT  (\$1, \$2, \$3)
> >     EXCEPT
> >     SELECT (id, txid, txtime)
> >     FROM changelogtest
> >     WHERE id = \$1
> >     AND txid = \$2
> >     AND txtime = \$3;
> > ENDQUERY
>
> You need to remove the braces from the query in your trigger too, they
> change the meaning of the query. You use brackets in this way if you need to
> reference fields from a composite type.
>
> Alban Hertroys
>
> --
> Screwing up is an excellent way to attach something to the ceiling.
>
>
> !DSPAM:1050,4bd1a0ba10411000594626!
>
>
>

Reply via email to