Problem with FOR UPDATE

From: Kaloyan Iliev <news1(at)faith(dot)digsys(dot)bg>
To: pgsql-sql(at)postgresql(dot)org
Subject: Problem with FOR UPDATE
Date: 2006-09-07 09:00:22
Message-ID: 44FFDFA6.4080600@faith.digsys.bg
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hi All,
I have a query in which I want to SELECT FOR UPDATE same rows but only
from one table.
Firs I try just with SELECT FOR UPDATE but I receive an error
because of the LEFT JOIN - "ERROR: SELECT FOR UPDATE/SHARE cannot be
applied to the nullable side of an outer join".
So I decide to use SELECT FOR UPDATE OF <table name> but I then receive
the error you can see.
Can anyone help me with this query?

Thanks in advance.

Regards,
Kaloyan Iliev

rsr=# SELECT
rsr-# DD.*
rsr-# ( SELECT sum(-amount *
saldo_sign(credit))
rsr(# FROM acc_debts ACD1
rsr(# WHERE
ACD1.debtid = DD.debtid ) AS saldo,
rsr-# C.custid,
rsr-# S.descr_bg
rsr-# FROM debts_desc DD LEFT JOIN config
C ON (DD.conf_id = C.id),
rsr-# acc_debts AD,
rsr-# acc_clients AC,
rsr-# services S
rsr-# WHERE DD.debtid = AD.debtid
rsr-# AND DD.closed AND NOT
DD.paid AND DD.has_invoice AND DD.active AND DD.has_proform AND NOT
DD.storned
rsr-# AND AD.transact_no =
AC.transact_no
rsr-#
AND AC.ino = 45
rsr-# FOR UPDATE OF
debts_desc;
ERROR: relation "debts_desc" in FOR UPDATE/SHARE clause not found in
FROM clause
rsr=# select version();
version
------------------------------------------------------------------------------------------------
PostgreSQL 8.1.4 on i386-portbld-freebsd6.1, compiled by GCC cc (GCC)
3.4.4 [FreeBSD] 20050518
(1 row)

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Kaloyan Iliev 2006-09-07 09:03:24 Re: Substitute a Character
Previous Message Tom Lane 2006-09-07 04:10:18 Re: Evaluation of if conditions