Re: PLSQL Question regarding multiple inserts
От | Greg Patnude |
---|---|
Тема | Re: PLSQL Question regarding multiple inserts |
Дата | |
Msg-id | c1ir5r$2mhf$1@news.hub.org обсуждение исходный текст |
Ответ на | PLSQL Question regarding multiple inserts ("Humble Geek" <humblegeek@rogers.com>) |
Список | 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 по дате отправления: