From: Ago <ago(at)nmb(dot)it>
To: <pgsql-general(at)postgresql(dot)org>
Subject:
Date: 2004-06-25 09:41:22
Message-ID: 3171008480ago@nmb.it
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I have a PHP script that runs this query on Postgresql 7.2.3. Once it inserts the record in the e_catalog table it takes the id value and then inserts it in the e_catalog_cache table, the two tables must have the same rows and values.
I thought rhat inside a transaction block the subquery SELECT MAX(id) FROM e_catalog was safe from concurrent same transactions, that is the id value from SELECT MAX(id) FROM e_catalog was exactly that one inserted in the previous statement, but reading some threads in this mailing list I have some doubt now.
This is the query:

BEGIN WORK;
INSERT INTO e_catalog(id, name, descr) VALUES (nextval('sequence'), '$Name', '$Descr');

INSERT INTO e_catalog_cache(id, name, descr) VALUES ((SELECT MAX(id) FROM e_catalog), '$Name', '$Descr');

COMMIT WORK;

Thanks.

Responses

  • Re: at 2004-06-25 09:58:50 from Michal Táborský

Browse pgsql-general by date

  From Date Subject
Next Message Michal Táborský 2004-06-25 09:58:50 Re:
Previous Message Oleg Bartunov 2004-06-25 09:38:22 Re: [GENERAL] tsearch2,pgsql 7.4.[1|2], pg_dump problem