Re: How to write such a query - Mailing list pgsql-general

From Rob Sargent
Subject Re: How to write such a query
Date
Msg-id 1C9CA252-1689-4F69-BC66-CDCDFE46FE87@gmail.com
Whole thread Raw
In response to Re: How to write such a query  (Ken Tanzer <ken.tanzer@gmail.com>)
List pgsql-general


On Sep 18, 2020, at 1:45 PM, Ken Tanzer <ken.tanzer@gmail.com> wrote:

> How to find what the primary key (or UNIQUE identifier) value is
> for row 5 in the recordset?

You're missing the point: as mentioned before, there is no "row 5". To
update the 5th record that you've fetched, you increment a counter each time
you fetch a row, and when you read #5, do an UPDATE X SET field1 = 'blarg'
WHERE id = <thekeyvalue>;


It seems worth mentioning for benefit of the OPs question that there _is_ a way to get a row number within a result set.  Understanding and making good use of that is an additional matter.

SELECT X.field1, Y.field2,row_number() OVER ()  from X, Y WHERE X.id = Y.id -- ORDER BY ____?

That row number is going to depend on the order of the query, so it might or might not have any meaning.  But if you queried with a primary key and a row number, you could then tie the two together and make an update based on that.

If “row 5” as seen by the OP has no distinguishing characteristic directing OP to edit that tuple then he’s in a world of hurt, well beyond the reach of anyone here.

pgsql-general by date:

Previous
From: Ken Tanzer
Date:
Subject: Re: How to write such a query
Next
From: Igor Korot
Date:
Subject: Re: How to write such a query