Re: Using LASTOID in one query
От | Joel Burton |
---|---|
Тема | Re: Using LASTOID in one query |
Дата | |
Msg-id | JGEPJNMCKODMDHGOBKDNKEMOCOAA.joel@joelburton.com обсуждение исходный текст |
Ответ на | Using LASTOID in one query (Eckhard Hoeffner <e-hoeffner@fifoost.org>) |
Список | pgsql-sql |
If you're using SERIAL for the table_a primary key, you don't need to use the OID, just use the sequence information. INSERT INTO Table_A (a_text) VALUES ('hello'); INSERT INTO Table_B (number1, b_text) VALUES (currval('Table_A_number1_seq'), 'there'); Faster, easier, works in a transaction, and not PHP-specific. See the system docs on currval(), nextval(), and setval(). - J. Joel BURTON | joel@joelburton.com | joelburton.com | aim: wjoelburton Knowledge Management & Technology Consultant > -----Original Message----- > From: pgsql-sql-owner@postgresql.org > [mailto:pgsql-sql-owner@postgresql.org]On Behalf Of Eckhard Hoeffner > Sent: Monday, May 20, 2002 10:09 AM > To: SQL PostgreSQL > Subject: [SQL] Using LASTOID in one query > > > Is there a possibility to use the last OID from PHP within one > query? I have two tables like the following: > > table_a: > number1 serial PRIMARY KEY > a_text text > > table_b: > number1 integer REFERENCES table_a, > b_text text > > I am retrieving data like > a_text = something > b_text = something else > > > With psql I would do the following: > BEGIN; > INSERT INTO table_a (a_text) VALUES ('something'); > INSERT 224490 1 > SELECT number1 FROM table_a WHERE oid = 224490; > number1 > ------- > 9 > (1 row) > INSERT INTO table_b (number1, b_text) VALUES (9, 'something else'); > INSERT 224491 1; > COMMIT; > > If I am using php, the only solution I know is: > 1. make the first INSERT, execute it > 2. get the last oid and make the next query, execute it > 3. make the second INSERT > > This are 3 queries and I can not do it within a transaction. > > > -- > --//--\\-- > Eckhard Hoeffner > e-hoeffner@fifoost.org > Tal 44 > D-80331 München > > ---------------------------(end of broadcast)--------------------------- > TIP 3: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly >
В списке pgsql-sql по дате отправления: