Fwd: duplicate key value violates unique constraint

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Fwd: duplicate key value violates unique constraint

Ashkar Dev

Hi all,

how to fix a problem, suppose there is a table with id and username

if I set the id to bigint so the limit is 9223372036854775807 
if I insert for example 3 rows
id    username
--    --------------
1     abc
2     def
3     ghi

if I delete all rows and insert one another it is like

id    username
--    --------------
4     jkl


So it doesn't start again from non-available id 1, so what is needed to do to make the new inserts go into non-available id numbers?

and if the id reaches the limit and maybe there is some ids that are not used.
Reply | Threaded
Open this post in threaded view
|

RE: duplicate key value violates unique constraint

Dave Bolt

I have two immediate questions on this.

1)      Do you Need to make sure there are no gaps in the sequence of id values?

2)      Are you ever going to use 9223372036854775807 id values, even with the deletions?

If you want to re-use the id of a deleted row, and it is not going to cause problems elsewhere in your database, you could always have a deleted column in each row instead of actually removing from the table. When you want to insert next, you would just look for the first row where deleted is true and replace it.

Not entirely perfect, but would probably do the job.

 

 

From: Ashkar Dev [mailto:[hidden email]]
Sent: 07 March 2020 19:35
To: [hidden email]
Subject: Fwd: duplicate key value violates unique constraint

 

 

Hi all,


how to fix a problem, suppose there is a table with id and username

 

if I set the id to bigint so the limit is 9223372036854775807 

if I insert for example 3 rows

id    username

--    --------------

1     abc

2     def

3     ghi

 

if I delete all rows and insert one another it is like

 

id    username

--    --------------

4     jkl

 

 

So it doesn't start again from non-available id 1, so what is needed to do to make the new inserts go into non-available id numbers?

 

and if the id reaches the limit and maybe there is some ids that are not used.

Reply | Threaded
Open this post in threaded view
|

Re: duplicate key value violates unique constraint

David G Johnston
In reply to this post by Ashkar Dev
On Sat, Mar 7, 2020 at 12:35 PM Ashkar Dev <[hidden email]> wrote:

Hi all,

how to fix a problem, suppose there is a table with id and username

You should probably provide the definition though in this case it is self-evident that you are using bigserial.


So it doesn't start again from non-available id 1, so what is needed to do to make the new inserts go into non-available id numbers?

Alter sequence



and if the id reaches the limit and maybe there is some ids that are not used.

This is highly unlikely.

Is the subject line supposed to relate to this in some way?

You should not worry about any of this in production; and frankly, worrying about it in development is largely pointless as well.

There is no actual problem here to be fixed.

David J.

Reply | Threaded
Open this post in threaded view
|

Re: duplicate key value violates unique constraint

Ashkar Dev
Thanks for answers.

On Sat, Mar 7, 2020 at 10:55 PM David G. Johnston <[hidden email]> wrote:
On Sat, Mar 7, 2020 at 12:35 PM Ashkar Dev <[hidden email]> wrote:

Hi all,

how to fix a problem, suppose there is a table with id and username

You should probably provide the definition though in this case it is self-evident that you are using bigserial.


So it doesn't start again from non-available id 1, so what is needed to do to make the new inserts go into non-available id numbers?

Alter sequence



and if the id reaches the limit and maybe there is some ids that are not used.

This is highly unlikely.

Is the subject line supposed to relate to this in some way?

You should not worry about any of this in production; and frankly, worrying about it in development is largely pointless as well.

There is no actual problem here to be fixed.

David J.