Thread: bug in setval?
When I create a new table with a serial column, the first row defaults to inserting '1'. If I delete all the rows from the table and want to reset the sequence, I can't: ERROR: users_health_types_type_id_seq.setval: value 0 is out of bounds (1,9223372036854775807) How do I set the sequence to have next value = 1? Surely the bounds should begin at zero? Chris
Christopher Kings-Lynne wrote: > How do I set the sequence to have next value = 1? Surely the bounds should > begin at zero? > No; see: http://www.us.postgresql.org/users-lounge/docs/7.3/postgres/functions-sequence.html Notice the is_called flag. I think this does what you want: SELECT setval('foo', 1, false); Joe
It's rumoured that Christopher Kings-Lynne once said: > When I create a new table with a serial column, the first row defaults > to inserting '1'. > > If I delete all the rows from the table and want to reset the sequence, > I can't: > > ERROR: users_health_types_type_id_seq.setval: value 0 is out of bounds > (1,9223372036854775807) > > How do I set the sequence to have next value = 1? Surely the bounds > should begin at zero? That's bugged me for ages as well. I just never got round to asking about it... Regards, Dave.