Thread: sequences not renamed with tables

sequences not renamed with tables

From
CSN
Date:
I'm getting these errors when importing dumps:

ERROR:  relation "table1_id_seq" does not exist
ERROR:  relation "table2_id_seq" does not exist

I renamed a couple tables, and the names of their
corresponding sequences remained the same. This causes
a problem because when importing - the create table
statements create sequences with different names, then
the setval() statements use the old names. Any way to
automatically avoid this "gotcha"?

Thanks,
CSN


__________________________________
Do you Yahoo!?
New Yahoo! Photos - easier uploading and sharing.
http://photos.yahoo.com/

Re: sequences not renamed with tables

From
"Greg Sabino Mullane"
Date:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


> I renamed a couple tables, and the names of their
> corresponding sequences remained the same. This causes
> a problem because when importing - the create table
> statements create sequences with different names, then
> the setval() statements use the old names. Any way to
> automatically avoid this "gotcha"?

Don't rely on the create table to make the sequences for
you: declare them yourself. Instead of this:

CREATE TABLE foobar (
  id  SERIAL
);

Try this:

CREATE SEQUENCE barbell_seq;

CREATE TABLE foobar (
  id INTEGER NOT NULL DEFAULT nextval('barbell_seq')
);

- --
Greg Sabino Mullane greg@turnstep.com
PGP Key: 0x14964AC8 200312172134

-----BEGIN PGP SIGNATURE-----

iD8DBQE/4RJjvJuQZxSWSsgRAgEdAJ9y4eDaQENuRWVRETJdLu/vKO5PggCeKLjs
dkPyceUBRMkTbvcqMBAgLr4=
=5b5j
-----END PGP SIGNATURE-----