Thread: Problem when adding an existing primary key

Problem when adding an existing primary key

From
"Insyde"
Date:
Hi, I'm new to Postgres and I'm using it for 1 month now.

The problem is:

When I try to insert via application a registry that already exists
Postgres shows an error  "Unable to insert duplicate primary key on index '=
index' ".
I think it's an error, because I would treat this error, just like others.=
=20

I've found this message in file: nbtinsert.c line 257.

I'm using Postgres 7.2 but I've seen this message in version
7.3.1.

Thanks in advance,
Ricardo.

Re: Problem when adding an existing primary key

From
Josh Berkus
Date:
Ricardo,

> When I try to insert via application a registry that already exists
> Postgres shows an error  "Unable to insert duplicate primary key on index
> 'index' ". I think it's an error, because I would treat this error, just
> like others.

You're getting that message becuase you are trying to insert a value into t=
he=20
PK column which is a duplicate of a value already present.  This is not=20
permitted ... definitionally, primary keys must be unique.

In other words, the above is a valid error message being sent to you becaus=
e=20
you violated a table constraint.

If there is more to the story than that, I suggest that you post your probl=
ems=20
to the PGSQL-NOVICE mailing list, where other users will help you fix your=
=20
queries.  For that matter, I believe that there are other Brazillians on so=
me=20
of the other mailing lists (you could try PGSQL-GENERAL as well), which wou=
ld=20
spare you the pain of translating your questions.

--=20
Josh Berkus
Aglio Database Solutions
San Francisco

Re: Problem when adding an existing primary key

From
"Insyde"
Date:
----- Original Message -----
From: "Josh Berkus" <josh@agliodbs.com>
To: "Insyde" <insyde@insyde.com.br>; <pgsql-bugs@postgresql.org>
Sent: Sunday, February 02, 2003 6:28 PM
Subject: Re: [BUGS] Problem when adding an existing primary key


> Ricardo,
>
> > When I try to insert via application a registry that already exists
> > Postgres shows an error  "Unable to insert duplicate primary key on
index
> > 'index' ". I think it's an error, because I would treat this error, just
> > like others.
>
> You're getting that message becuase you are trying to insert a value into
the
> PK column which is a duplicate of a value already present.  This is not
> permitted ... definitionally, primary keys must be unique.
>
> In other words, the above is a valid error message being sent to you
because
> you violated a table constraint.
>
> If there is more to the story than that, I suggest that you post your
problems
> to the PGSQL-NOVICE mailing list, where other users will help you fix your
> queries.  For that matter, I believe that there are other Brazillians on
some
> of the other mailing lists (you could try PGSQL-GENERAL as well), which
would
> spare you the pain of translating your questions.
>
> --
> Josh Berkus
> Aglio Database Solutions
> San Francisco

But what if I have a program and I want to show and error message to the
user saying
something like: "This registry already exists" and simply don't add?
Instead, Postgres is
closing the application! This should not happen. If I've got this message
using psql OK,
but inside my programs I should control the messages I what to display to
the user, don't
you think? Or, every time the user forget and insert a duplicated primary
key, he will be
obbligated to see postgres message?

Ricardo.