Re: mixed insert... ? - Mailing list pgsql-general

From Jeff Eckermann
Subject Re: mixed insert... ?
Date
Msg-id 20020114221703.56450.qmail@web20806.mail.yahoo.com
Whole thread Raw
In response to mixed insert... ?  (tomasz konefal <twkonefal@yahoo.ca>)
List pgsql-general
You need to use a trigger, which will do the insert
for you automatically.  Some references:
http://www.ca.postgresql.org/docs/aw_pgsql_book/node166.html
http://www.postgresql.org/idocs/index.php?sql-createtrigger.html
http://www.postgresql.org/idocs/index.php?plpgsql-trigger.html

--- tomasz konefal <twkonefal@yahoo.ca> wrote:
> hello list,
>
>   i'm hoping someone can enlighten me on the best
> way to do an insert.  i am
> creating a little user database that looks something
> like this:
>
> CREATE TABLE ftpclients (
>         clientid serial primary key,
>         foldernumber int,
>         loginname varchar(32),
>         createdate date,
>         activedate date,
>         expiredate date,
>         quota int,
>         active boolean,
>         billbydate boolean,
>         passwd varchar(32)
> );
>
> and i'd like to log any changes to the ftpclients
> table (above) in a second
> table like this:
>
> CREATE TABLE clhistory (
>         clientid int,
>         entry text,
>         moddate date,
>         FOREIGN KEY (clientid) REFERENCES ftpclients
> );
>
> i'm writing a script in perl that will fetch the
> appropriate data and perform
> these inserts, but i'm having trouble inserting into
> the clhistory table
> because i need to insert two fields from the
> ftpclients table (clientid, and
> createdate), but also a third value that comes from
> the script that runs the
> query (so i can't use:
>
> INSERT into ... SELECT...;
>
> directly).  right now, i see my options as (some
> perl'isms):
>
> 1 - $result=SELECT clientid from ftpclients WHERE
> loginname=$client{loginname};
>     INSERT INTO clhistory VALUES ($result, $entry,
> $createdate);
>
> 2 - store the most recent comment in the ftpclients
> table, which would allow
> an
>     INSERT ... SELECT;
>
> ideally, i'd like to insert into the clhistory table
> a comment with a
> clientid value that matches the desired loginname
> from the ftpclients table.
> am i on the right track, or is there an entirely
> better way to handle this?
>
> thanks,
>   twkonefal
>
>
______________________________________________________________________
>
> Web-hosting solutions for home and business!
> http://website.yahoo.ca
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/users-lounge/docs/faq.html


__________________________________________________
Do You Yahoo!?
Send FREE video emails in Yahoo! Mail!
http://promo.yahoo.com/videomail/

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: PSQL Core Dumps
Next
From: Tom Lane
Date:
Subject: Re: Anyway to know which users are connected to postgres?