Re: Reset sequence to current maximum value of rows - Mailing list pgsql-general

From Rich Shepard
Subject Re: Reset sequence to current maximum value of rows
Date
Msg-id c141507f-a21-65dd-55fa-bd9bad7b9fe4@appl-ecosys.com
Whole thread Raw
In response to Re: Reset sequence to current maximum value of rows  (Ron Johnson <ronljohnsonjr@gmail.com>)
Responses Re: Reset sequence to current maximum value of rows
Re: Reset sequence to current maximum value of rows
List 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



pgsql-general by date:

Previous
From: Rich Shepard
Date:
Subject: Re: Reset sequence to current maximum value of rows
Next
From: Ron Johnson
Date:
Subject: Re: Reset sequence to current maximum value of rows