Received: from localhost (maia-3.hub.org [200.46.204.184]) by postgresql.org (Postfix) with ESMTP id 9A6CE9FB311 for ; Fri, 13 Apr 2007 08:49:05 -0300 (ADT) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.184]) (amavisd-maia, port 10024) with ESMTP id 90001-09 for ; Fri, 13 Apr 2007 08:48:53 -0300 (ADT) X-Greylist: from auto-whitelisted by SQLgrey-1.7.4 Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.187]) by postgresql.org (Postfix) with ESMTP id EAFCE9FB43A for ; Fri, 13 Apr 2007 08:48:57 -0300 (ADT) Received: from [194.25.154.138] (helo=webserv.wug.de) by mrelayeu.kundenserver.de (node=mrelayeu6) with ESMTP (Nemesis), id 0ML29c-1HcKGt0cP2-0003Th; Fri, 13 Apr 2007 13:48:55 +0200 Received: from kretschmer by webserv.wug.de with local (Exim 3.36 #1) id 1HcKGs-00010N-00 for pgsql-sql@postgresql.org; Fri, 13 Apr 2007 13:48:54 +0200 Date: Fri, 13 Apr 2007 13:48:54 +0200 From: "A. Kretschmer" To: pgsql-sql@postgresql.org Subject: Re: How can I know if a row is Locked? Message-ID: <20070413114854.GM24558@a-kretschmer.de> References: <651844.97452.qm@web57110.mail.re3.yahoo.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <651844.97452.qm@web57110.mail.re3.yahoo.com> X-OS: Debian/GNU Linux - weil ich es mir Wert bin! X-Message-Flag: "Windows" is not the answer. "Windows" is the question and the answer is "no"! User-Agent: Mutt/1.5.9i X-Provags-ID: V01U2FsdGVkX1/1zSNDCrL5cj6yel0fNdD6ErRDTWpxsa8YwLv h8yehujDtyKB9j3RxrUMs0JvUK8sHhD76Lca/56Z4hP4M6/mMm 2gdS7QvXXHIXZfDAZOzxMmercPM8kWB X-Virus-Scanned: Maia Mailguard 1.0.1 X-Archive-Number: 200704/141 X-Sequence-Number: 28141 am Fri, dem 13.04.2007, um 4:27:34 -0700 mailte Carlos Santos folgendes: > How can I know if a row is locked by another transaction. > I have in a transaction like that: > > BEGIN; > SELECT * FROM compels.teste WHERE id = '1' FOR UPDATE; > > PS1: where id is the primary key. > PS2: The COMMIT command is done after a long time. > > In this case the row with the primary-key equals to '1' will be locked to other > transactions until the COMMIT command be executed. > So, how can I detect if this row is locked? You can call the insert with 'for update nowait' and catch the error, if an error occurs. Maybe there are better solutions... Andreas -- Andreas Kretschmer Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header) GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net