Re: PLSQL Question regarding multiple inserts - Mailing list pgsql-general

From Greg Patnude
Subject Re: PLSQL Question regarding multiple inserts
Date
Msg-id c1ir5r$2mhf$1@news.hub.org
Whole thread Raw
In response to PLSQL Question regarding multiple inserts  ("Humble Geek" <humblegeek@rogers.com>)
List pgsql-general
That's the hard way....

You'd be better off redefining your table structures so that postgreSQL
handles the primary keys automatically...

CREATE TABLE test (

    id integer primary key not null default nextval('test_seq'),
    log varchar(32) NOT NULL,
    message text

) WITH OIDS;

Using this type of table def will automatically create the sequence for
you -- and always ge thte next value when you do an insert -- ensuring that
you dont have duplicate...

so you would:

INSERT INTO test ('log', 'message');

then

SELECT * FROM test;

would give you

id, log and message.



--
Greg Patnude / The Digital Demention
2916 East Upper Hayden Lake Road
Hayden Lake, ID 83835
(208) 762-0762

"Humble Geek" <humblegeek@rogers.com> wrote in message
news:ZfV_b.60$Yf.1@twister01.bloor.is.net.cable.rogers.com...
> Hi all. Quick and perhaps silly question, but...
>
> I am using Pg 7.3. I am writing a function using pgplsql. This function
will
> perform multiple inserts. Let's say two of the inserts are as follows:
>
> -- id is primary key
> insert into users (id, username) values (nextval('someSeq'),'somename');
>
> -- id is also a PK
> insert into log (id, uid, message) values
(nextval('someOtherSeq'),XXX,'New
> Account');
>
> Assume XXX is the id from the first insert. How do I get that number? Not
> currval('someSeq') -  'cause someone else may have performed an insert -
but
> the id for that specific insert.
>
> Thanks,
>
> HG
>
> PS: Sorry for the cross-post...
>
>



pgsql-general by date:

Previous
From: "Humble Geek"
Date:
Subject: PLSQL Question regarding multiple inserts
Next
From: Rob Bochenek
Date:
Subject: Is there a variant/anytype datatype in postgresql?