Re: [GENERAL] Re: [HACKERS] TRANSACTIONS
От | |
---|---|
Тема | Re: [GENERAL] Re: [HACKERS] TRANSACTIONS |
Дата | |
Msg-id | Pine.LNX.4.10.10002251447090.16512-100000@picasso.realtyideas.com обсуждение исходный текст |
Ответ на | Re: [GENERAL] Re: [HACKERS] TRANSACTIONS (Karl DeBisschop <kdebisschop@range.infoplease.com>) |
Ответы |
Re: [GENERAL] Re: [HACKERS] TRANSACTIONS
|
Список | pgsql-general |
On Fri, 25 Feb 2000, Karl DeBisschop wrote: > > >>To summarize, I stated that the following does not work with > >>postgresql: > >> > >>> $dbh->{AutoCommit} = 0; > >>> $dbh->do("CREATE TABLE tmp (a int unique,b int)"); > >>> $rtv = $dbh->do("INSERT INTO tmp VALUES ($1,$2)"); > >>> if ($rtv) {$dbh->do("UPDATE tmp SET b=$2 where a=$1")}; > >>> $dbh->commit; > >>> $dbh->disconnect; > >> > > The usefulness of the idion is that in a mutli-user environment, this > is a basic way to update data that may or may not already have a key > in the table. You can't do a "SELECT COUNT" because in the time > between when you SELECT and INSERT (assuming the key is not already > there) someone may have done a separate insert. The only other way I > know to do this is to lock the entire table against INSERTs which has > obvious performance effects. sounds right, but ;-) why you use the transaction in the first place?
В списке pgsql-general по дате отправления: