RE: [INTERFACES] sequences
От | Jackson, DeJuan |
---|---|
Тема | RE: [INTERFACES] sequences |
Дата | |
Msg-id | D05EF808F2DFD211AE4A00105AA1B5D2100474@cpsmail обсуждение исходный текст |
Ответы |
RE: [INTERFACES] sequences
|
Список | pgsql-interfaces |
You might try placing the INSERT and SELECT CURRVAL into a transaction block.-DEJ > -----Original Message----- > From: Patrick Welche [SMTP:prlw1@newn.cam.ac.uk] > Sent: Thursday, April 29, 1999 1:05 PM > To: pgsql-interfaces@postgreSQL.org > Subject: [INTERFACES] sequences > > After the interesting discussion on what is the safest way to have a > unique > "oid"-like value per row, I thought I would have a go, but from libpq++ I > don't seem to be able to read the new sequence value: > > Table = person > +----------------------------------+----------------------------------+--- > ----+ > | Field | Type | > Length| > +----------------------------------+----------------------------------+--- > ----+ > | id | int4 not null default nextval('p | > 4 | > | surname | text not null | > var | > | firstname | text not null | > var | > | email | text | > var | > | phone | text | > var | > | rfbdate | date | > 4 | > +----------------------------------+----------------------------------+--- > ----+ > Index: person_id_key > > The output from my test program is: > > INSERT INTO person (surname,firstname,email,phone) VALUES > ('Welche','Patrick',' > prlw1',null) > SELECT currval('person_id_seq') > > Missing person id > > and the relevant bit of code is: > > query<<"INSERT INTO person (surname,firstname,email,phone) VALUES > ('" > <<a._surname<<"','"<<a._firstname<<"'," > <<ISNULL(a._email)<<',' > <<ISNULL(a._phone)<<')'<<ends; > s.send_query(query); > query<<"SELECT currval('person_id_seq')"<<ends; > s.send_query(query); > if(s.Tuples()!=1)throw empty_result("Missing person id"); > a.id(toid(s.GetValue(0,"currval"))); > > send_query prints the query and does a Exec(query). I suppose I don't > understand the difference between doing things interactively in psql (the > above INSERT and SELECT work then) and calling things from a program. Any > tips? > > Cheers, > > Patrick
В списке pgsql-interfaces по дате отправления: