Re: Updating 457 rows in a table

From: Ray O'Donnell <ray(at)rodonnell(dot)ie>
To: Rich Shepard <rshepard(at)appl-ecosys(dot)com>, pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: Updating 457 rows in a table
Date: 2024-05-19 16:57:41
Message-ID: 4001d2f9-1a70-47e5-9f21-754a5d7497bf@rodonnell.ie
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 19/05/2024 17:54, Rich Shepard wrote:
> Searching the postgresql doc for UPDATE the examples I find show updating
> one or a few rows in a table. I have 457 rows to update in a table.
>
> I could write a .sql script with 457 lines, each updating one row of the
> table. My web search for `sql: update table rows from a file of column
> values' finds pages for single row updates and updating a table from
> another
> table, but neither is what I want.
>
> I want to change a column value in a table based on the value of a
> different
> column in that same table.
>
> Specifically, in the 'people' table I want to change the column 'active'
> from false to true for 457 specific person_id row numbers.
>
> Is there a way to do this without manually writing 457 'update ...'
> rows in
> a .sql file?

Could you create a table with just person_id values whose rows are to be
updated? Then you could do something like this:

update people set active = true where exists (
  select 1 from temporary_table where person_id = people.person_id
);

That's just off the top of my head and might not be correct, but that's
the way I'd be thinking.

Ray.

--
Raymond O'Donnell // Galway // Ireland
ray(at)rodonnell(dot)ie

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Muhammad Ikram 2024-05-19 17:06:04 Re: Updating 457 rows in a table
Previous Message Christophe Pettus 2024-05-19 16:56:50 Re: Updating 457 rows in a table