Hi Melvin, I already reset id to correct value after this happen. This is a production database. We could not stop and wait for trouble shooting. I manually reset sequence of id to correct value.
Below is current result: sequence_name | xxxxxx_id_seq last_value | 190996 start_value | 1 increment_by | 1 max_value | 9223372036854775807 min_value | 1 cache_value | 1 log_cnt | 29 is_cycled | f is_called | t Regards, Max From: Melvin Davidson [mailto:melvin6...@gmail.com] Sent: Tuesday, 2 May 2017 9:49 AM To: Adrian Klaver <adrian.kla...@aklaver.com> Cc: Max Wang <mw...@1080agile.com>; Amitabh Kant <amitabhk...@gmail.com>; pgsql-general@postgresql.org Subject: Re: [GENERAL] all serial type was changed to 1 On Mon, May 1, 2017 at 7:45 PM, Adrian Klaver <adrian.kla...@aklaver.com<mailto:adrian.kla...@aklaver.com>> wrote: On 05/01/2017 04:36 PM, Max Wang wrote: Hi Amitabh, I mean the serial sequence that controls the id value has been set to 1 for all tables. That's why I got the duplicate key value error when I tried to insert the new record to table. So what does the sequence query show? As an example in psql: test=# create table serial_test(id serial PRIMARY KEY, fld_1 varchar); CREATE TABLE test=# \d serial_test Table "public.serial_test" Column | Type | Modifiers --------+-------------------+---------------------------------------------------------- id | integer | not null default nextval('serial_test_id_seq'::regclass) fld_1 | character varying | Indexes: "serial_test_pkey" PRIMARY KEY, btree (id) The above shows that the sequence associated with the serial type is: 'serial_test_id_seq' The below shows how to select from that sequence: test=# select * from serial_test_id_seq ; -[ RECORD 1 ]-+-------------------- sequence_name | serial_test_id_seq last_value | 1 start_value | 1 increment_by | 1 max_value | 9223372036854775807 min_value | 1 cache_value | 1 log_cnt | 0 is_cycled | f is_called | f Can you do that on the serial column from one the affected tables and post the results here? Thanks. Regards, Max -----Original Message----- From: Adrian Klaver [mailto:adrian.kla...@aklaver.com<mailto:adrian.kla...@aklaver.com>] Sent: Tuesday, 2 May 2017 9:31 AM To: Max Wang <mw...@1080agile.com<mailto:mw...@1080agile.com>>; Amitabh Kant <amitabhk...@gmail.com<mailto:amitabhk...@gmail.com>> Cc: pgsql-general@postgresql.org<mailto:pgsql-general@postgresql.org> Subject: Re: [GENERAL] all serial type was changed to 1 On 05/01/2017 04:11 PM, Max Wang wrote: Hi Amitabh, Thank you for suggestion. We did not reach the limit of serial type. Some tables only have hundreds of rows. It would helpful if you ran the query I showed in my previous post on one the sequences just so we can see. From subsequent post of yours: "Sorry. I mean all tables’ id column were reset to 1." I thought I understood on this, now I am not sure. Do you mean that the actual values in the id column in all the tables have been set to 1 or that the serial sequence that controls the id value has been set to 1? Regards, Max -- Adrian Klaver adrian.kla...@aklaver.com<mailto:adrian.kla...@aklaver.com> -- Sent via pgsql-general mailing list (pgsql-general@postgresql.org<mailto:pgsql-general@postgresql.org>) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general Hmmm, it's beginning to look like someone did a "SELECT setval('seqname', 1);" For every sequence. Is that a possibility? -- Melvin Davidson I reserve the right to fantasize. Whether or not you wish to share my fantasy is entirely up to you. [http://us.i1.yimg.com/us.yimg.com/i/mesg/tsmileys2/01.gif]