How to use locks, for DB noivces?
От | |
---|---|
Тема | How to use locks, for DB noivces? |
Дата | |
Msg-id | 20010309211255.24162.qmail@mailhost.sidereal.kz обсуждение исходный текст |
Ответы |
Re: How to use locks, for DB noivces?
|
Список | pgsql-general |
I've never used the locking features of Postgres before, and now I find that I need to use them. I read through the instructions, but I've never taken a database theory course so I don't understand all the terms they used. Here's what I need to do: The database keeps accounts. If one process is accessing an account, no other process should be able to access it at the same time. I need to do the following logical sequence of things: 1. Lock the account 2. Check to see if the change to the account is permitted 3. Make the change 4. Unlock the account I need this so that there isn't a race condition. Ie, if there are $10 in the account, and one backen says "withdraw $9" and the other also says "withdraw $9" at the same time, I need to make sure they they don't execute at the same time, which would result in a negative balance. I tried to do this with SELECT FOR UPDATE but I couldn't get that to work. Thanks
В списке pgsql-general по дате отправления: