Re: Use ctid in where clause in update from statement - Mailing list pgsql-general

From Dirk Mika
Subject Re: Use ctid in where clause in update from statement
Date
Msg-id 428A47B1-DBC5-47D6-B361-C142B2534756@mikatiming.de
Whole thread Raw
In response to Re: Use ctid in where clause in update from statement  (Achilleas Mantzios <achill@matrix.gatewaynet.com>)
Responses Re: Use ctid in where clause in update from statement  (Thomas Kellerer <spam_eater@gmx.net>)
List pgsql-general

Hi,

 

The problem with the INSERT ON CONFLICT is that an insert is tried here first, which may fire triggers.

In my case there is a fairly expensive INSERT Trigger ON EACH ROW, which I would like to avoid.

 

Since the SELECT statement only returns records whose PK already exists, I thought an UPDATE FROM would be the better choice.

As I said, with the PK as JOIN condition it works fine too. I'm only interested in why no tid scan is used.

 

Dirk

 

--
Dirk Mika
Software Developer



mika:timing GmbH
Strundepark - Kürtener Str. 11b
51465 Bergisch Gladbach
Germany

fon +49 2202 2401-1197
dirk.mika@mikatiming.de
www.mikatiming.de

AG Köln HRB 47509 * WEEE-Reg.-Nr. DE 90029884
Geschäftsführer: Harald Mika, Jörg Mika


 

Von: Achilleas Mantzios <achill@matrix.gatewaynet.com>
Datum: Montag, 1. Juli 2019 um 11:27
An: "pgsql-general@lists.postgresql.org" <pgsql-general@lists.postgresql.org>
Betreff: Re: Use ctid in where clause in update from statement

 

On 1/7/19 12:13 μ.μ., Dirk Mika wrote:

Hello,

 

I come from the Oracle world and am trying to convert some queries to PostgreSQL syntax. One of these queries is a MERGE statement, which I converted into an UPDATE SET FROM WHERE construct. In the original query I use the pseudo column ROWID to match a source row with a target row.

This is a simplified version of such a query:

 

Postgresql supports upserts : https://www.postgresql.org/docs/11/sql-insert.html "ON CONFLICT"


 

BR

Dirk

 

--
Dirk Mika
Software Developer

cid:part1.679C32D5.E7787ACA@matrix.gatewaynet.com

mika:timing GmbH

Strundepark - Kürtener Str. 11b
51465 Bergisch Gladbach
Germany

fon +49 2202 2401-1197
dirk.mika@mikatiming.de
www.mikatiming.de

AG Köln HRB 47509 * WEEE-Reg.-Nr. DE 90029884
Geschäftsführer: Harald Mika, Jörg Mika

 

cid:part2.E58C80B6.31D80ADB@matrix.gatewaynet.com


 




-- 
Achilleas Mantzios
IT DEV Lead
IT DEPT
Dynacom Tankers Mgmt
Attachment

pgsql-general by date:

Previous
From: Dirk Mika
Date:
Subject: Re: Use ctid in where clause in update from statement
Next
From: Thomas Kellerer
Date:
Subject: Re: Use ctid in where clause in update from statement