Trouble incrementing a column

Blake McBride <[email protected]>
Newsgroups gmane.comp.db.postgresql.general
Message-ID <CABwHSOuxyDcnZ7xhj1uQYT09=94-x6O051x=_iK8hiOXoAgCrA@mail.gmail.com>
Greetings,

I am using PostgreSQL 10.10.  I am having trouble incrementing a column for
reasons I can't see.  It's probably some basic SQL thing.  Your help is
appreciated.

create table my_table (
    listid char(36) not null,
    seq smallint not null,
    item varchar(4096),
    primary key (listid, seq)
);

insert into my_table (listid, seq) values ('abc', 1);
insert into my_table (listid, seq) values ('abc', 2);

-- the following works some of the time
update my_table set seq=seq+1;

-- the following doe not work for reasons I do not know
update my_table set seq=seq+1 where listid='abc';

What I get is a duplicate primary key.  I wouldn't think I'd get that
because I'd think the whole thing is done in a transaction so that
duplicate checks wouldn't be done till the end (essentially).

Is there a clean way to do this?

Thanks!

Blake McBride
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.