Here's an interesting problem! When a sequence clashes with data already in that table:
CREATE TABLE clients ( id serial NOT NULL PRIMARY KEY UNIQUE, name varchar(64)); -- import OLD clients, with their original ID#... INSERT INTO clients VALUES (3, 'Dave'); INSERT INTO clients VALUES (4, 'Sally'); -- done! let the world add new clients now INSERT INTO clients (name) VALUES ('Harry'); -- no problems, id=1 INSERT INTO clients (name) VALUES ('Mary'); -- no problems, id=2 INSERT INTO clients (name) VALUES ('Burt'); ERROR: duplicate key violates unique constraint "clients_pkey" I thought Postgres would be smart enough to make the clients_id_seq skip existing numbers, but I guess not! Do I, instead, have to be smart enough to set the sequence over the highest existing id# from my imported data, so that it can blindly increment without clashing? If so, setval() would be best for that, right? ---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9' the postmaster