Обсуждение: help lock record

Поиск
Список
Период
Сортировка

help lock record

От
bitrunner
Дата:
For lock the record I use:
select * from orders where id = 17 for update

in this way lock the record with id = 17.
If an other user demands the same record as I can understand that it is
lock?

Thanks a lot.

Re: help lock record

От
Dave Cramer
Дата:
On 23-May-06, at 1:37 PM, bitrunner wrote:

> For lock the record I use:
> select * from orders where id = 17 for update
>
> in this way lock the record with id = 17.
> If an other user demands the same record as I can understand that
> it is lock?
yes as long as autocommit is false this is true. In other words as
long as you do this inside a transaction/
>
> Thanks a lot.
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 2: Don't 'kill -9' the postmaster
>


Re: help lock record

От
bitrunner
Дата:
 >> I must set up of the parameters to postgresql.conf?

 > Yes, you must set this in postgresql.conf

Excuse but this is the parameter that I must set up?

thanks a lot.

Re: help lock record

От
Dave Cramer
Дата:
On 24-May-06, at 8:49 AM, bitrunner wrote:

> >> I must set up of the parameters to postgresql.conf?
>
> > Yes, you must set this in postgresql.conf
>
> Excuse but this is the parameter that I must set up?

Yes, but be aware, this is not an optimal solution. All kinds of
statements will time out on this.

For instance if you set this to 1000ms then try to do a vacuum it
will likely timeout.

However you can use the set command from java on the connection to
set the timeout per connection

    con = Database.getConnection()
    stmt = con.getStatement
    stmt.execute("set statement_timeout=1000");
    do your locking code
    con.close()

Dave
>
> thanks a lot.
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
>
>               http://www.postgresql.org/docs/faq
>