>Assuming that there is a unique identifier on queue Alas, there is not. The PK is made up of 4 columns.
-- Peter Headland Architect Actuate Corporation -----Original Message----- From: D'Arcy J.M. Cain [mailto:[email protected]] Sent: Tuesday, August 11, 2009 03:25 To: Peter Headland Cc: [email protected] Subject: Re: [SQL] Updating a specific number of rows in pl/pgsql On Mon, 10 Aug 2009 17:52:36 -0700 "Peter Headland" <[email protected]> wrote: > I can get the rows I want to update like this: > > SELECT * > FROM queue > WHERE id = p_queue_id > ORDER BY rank > LIMIT p_number_of_items; > > Of course, there may not be p_number_of_items available in the queue. > > I want to update all the rows in the cursor in the same way: > > UPDATE queue SET assigned = TRUE; Assuming that there is a unique identifier on queue, let's call it queue_id, you should be able to do something like this: UPDATE queue SET assigned = TRUE WHERE queue_id IN (SELECT queue_id FROM queue WHERE id = p_queue_id ORDER BY rank LIMIT p_number_of_items); -- D'Arcy J.M. Cain <[email protected]> | Democracy is three wolves http://www.druid.net/darcy/ | and a sheep voting on +1 416 425 1212 (DoD#0082) (eNTP) | what's for dinner. -- Sent via pgsql-sql mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-sql
