On Thu, 2003-12-18 at 10:20, Tom Lane wrote: > Is there any good reason for this restriction? > > regression=# begin; > BEGIN > regression=# declare c cursor for select * from tenk1 for update; > ERROR: DECLARE CURSOR ... FOR UPDATE is not supported > DETAIL: Cursors must be READ ONLY. > > While I have not tried it, I think that simply removing this error check > in PerformCursorOpen() would allow the system to behave in a reasonable > way, ie, locking each row the first time it is fetched through the > cursor.
The help implies you can. Command: DECLARE Description: define a cursor Syntax: DECLARE name [ BINARY ] [ INSENSITIVE ] [ [ NO ] SCROLL ] CURSOR [ { WITH | WITHOUT } HOLD ] FOR query [ FOR { READ ONLY | UPDATE [ OF column [, ...] ] } ] ---------------------------(end of broadcast)--------------------------- TIP 7: don't forget to increase your free space map settings