Re: Reset sequence to current maximum value of rows

From: Rich Shepard <rshepard(at)appl-ecosys(dot)com>
To: "pgsql-generallists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: Reset sequence to current maximum value of rows
Date: 2024-06-13 18:38:43
Message-ID: c141507f-a21-65dd-55fa-bd9bad7b9fe4@appl-ecosys.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Thu, 13 Jun 2024, Ron Johnson wrote:

> If the table has a primary key, then the command *should* have failed with
> a duplicate key error as soon as the first dupe was discovered.

Ron,

I had manually set the PKs (column: company_nbr) which has a sequence
defined for it when I added about 50 rows to the table yesterday.

Now that I'm aware of the DEFAULT option when inserting new rows I tried
to reset the sequence maximum number to max(company_nbr); the highest number
for the rows inserted yesterday. That's when I tried resetting the current
sequence number with the expectation that new rows would be numbered
sequentially higher than that value.

Today I saw that I had missed one new company and entered it using DEFAULT
for the company_nbr PK. When I looked at that table every company_name that
I had added yesterday was changed to the one inserted today.

> What does your table definition look like?

Table "public.companies"
Column | Type | Collation | Nullable | Default

--------------+-----------------------+-----------+----------+--------------------------------------
company_nbr | integer | | not null | nextval('companies_org_nbr_seq'::regclass)
company_name | character varying(64) | | not null | '??'::character varying
url | character varying(64) | | |
email | character varying(64) | | |
industry | character varying(24) | | not null | 'Other'::character varying
status | character varying(20) | | not null | 'Opportunity'::character varying
comment | text | | |
ea_nbr | integer | | | 0
ea_amt | numeric(10,2) | | | 0.00
Indexes:
"organizations_pkey" PRIMARY KEY, btree (company_nbr)
Foreign-key constraints:
"organizations_industry_fkey" FOREIGN KEY (industry) REFERENCES industrytypes(ind_name) ON UPDAT
E CASCADE ON DELETE RESTRICT
"organizations_status_fkey" FOREIGN KEY (status) REFERENCES statustypes(stat_name) ON UPDATE CAS
CADE ON DELETE RESTRICT
Referenced by:
TABLE "locations" CONSTRAINT "locations_org_nbr_fkey" FOREIGN KEY
(company_nbr) REFERENCES companies(company_nbr) ON UPDATE CASCADE ON DELETE
RESTRICT
TABLE "people" CONSTRAINT "people_org_nbr_fkey" FOREIGN KEY
(company_nbr) REFERENCES companies(c ompany_nbr) ON UPDATE CASCADE ON DELETE
RESTRICT

Rich

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Ron Johnson 2024-06-13 18:50:43 Re: Reset sequence to current maximum value of rows
Previous Message Rich Shepard 2024-06-13 18:24:37 Re: Reset sequence to current maximum value of rows