Re: view table pkey values
От | Scott Frankel |
---|---|
Тема | Re: view table pkey values |
Дата | |
Msg-id | E545FBE8-23CE-4436-A49C-B4C0676552B2@pacbell.net обсуждение исходный текст |
Ответ на | Re: view table pkey values (Raymond O'Donnell <rod@iol.ie>) |
Ответы |
Re: view table pkey values
Re: view table pkey values |
Список | pgsql-general |
Hi Ray, On Aug 24, 2009, at 9:48 AM, Raymond O'Donnell wrote: > On 24/08/2009 17:31, Scott Frankel wrote: >> The insert that yields the error seems innocuous enough: >> >> INSERT INTO foo (color_id, ordinal, person_id) VALUES (1, 1019, >> 2); >> >> It seems as if there's a sequence (foo_pkey) that's got some weird >> values in it. The table itself looks like this: >> >> >> CREATE TABLE foo ( >> foo_id SERIAL PRIMARY KEY, > > > If the sequence's current value is lower than the highest foo_id in > the > table, then you'll get collisions If I understand how tables are managed internally, there are 2 sequences: my explicit foo_id and the internal sequence foo_foo_id_seq: public | foo_foo_id_seq | sequence | pguser | It's this internal sequence that must be involved in the collision, since I'm not specifying an insert value for my explicit foo_id column. > You can fix that by using setval() to set the sequence value to > a number higher than any currently in foo_id. Aha! So the explicit foo_id value cannot exceed the internal sequence, foo_foo_id_seq value? They should actually be the same, unless there've been insert errors, right? Is there a command that lists the values for the internal, foo_foo_id_seq, sequence? Thanks! Scott > > Ray. > > ------------------------------------------------------------------ > Raymond O'Donnell, Director of Music, Galway Cathedral, Ireland > rod@iol.ie > Galway Cathedral Recitals: http://www.galwaycathedral.org/recitals > ------------------------------------------------------------------
В списке pgsql-general по дате отправления: