Обсуждение: ERROR: duplicate key violates unique constraint "client_alerts_PK"

Поиск
Список
Период
Сортировка

ERROR: duplicate key violates unique constraint "client_alerts_PK"

От
Robert Starr
Дата:
Hi all,

I am having an issue, where I create a new table, setup the constraints 
for Auto Increment and Primary Key etc, then manually add a bunch of 
data using pgadmin similar to the following:
insert into clients_alerts (id, client_id, alert_message, 
alert_complete, date, staff_id) values('1','39','This is some alert 
text','0','2007-05-04 12:42:05','14');

That works fine, but after say, 30 of those, I have an ID of '30' (of 
course ;) )  but if I look at the sequence it says that the Current 
Value is only at 1.

This then creates an issue when I want to add data via RealBasic, as it 
bails until I've tried 30+ times.   I can of course go in and manually 
change the Current Value to 30 but I have an install base of over 30 
servers and each has their own levels of data so each number would be 
different. 

The question is then: Is there a way to have the Current Value update 
when I initially add that data with the insert into statements?

Any help greatly appreciated...

Rob


Re: ERROR: duplicate key violates unique constraint "client_alerts_PK"

От
"Laurent Yaish"
Дата:
Hi Rob,

In your insert, do not explicitly specify a value for the primary key,
instead use NEXTVAL('client_alerts_seq') which will return the next
valid value and increment the sequence.

i.e:insert into clients_alerts (id, client_id, alert_message,
alert_complete, date, staff_id)
values(NEXTVAL('client_alerts_seq'),'39','This is some alert
text','0','2007-05-04 12:42:05','14');


Laurent

On 9/12/07, Robert Starr <rob@surrenderdorothy.com.au> wrote:
> Hi all,
>
> I am having an issue, where I create a new table, setup the constraints
> for Auto Increment and Primary Key etc, then manually add a bunch of
> data using pgadmin similar to the following:
> insert into clients_alerts (id, client_id, alert_message,
> alert_complete, date, staff_id) values('1','39','This is some alert
> text','0','2007-05-04 12:42:05','14');
>
> That works fine, but after say, 30 of those, I have an ID of '30' (of
> course ;) )  but if I look at the sequence it says that the Current
> Value is only at 1.
>
> This then creates an issue when I want to add data via RealBasic, as it
> bails until I've tried 30+ times.   I can of course go in and manually
> change the Current Value to 30 but I have an install base of over 30
> servers and each has their own levels of data so each number would be
> different.
>
> The question is then: Is there a way to have the Current Value update
> when I initially add that data with the insert into statements?
>
> Any help greatly appreciated...
>
> Rob
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Have you searched our list archives?
>
>                http://archives.postgresql.org
>


Re: ERROR: duplicate key violates unique constraint "client_alerts_PK"

От
Guillaume Lelarge
Дата:
Laurent Yaish a écrit :
> Hi Rob,
> 
> In your insert, do not explicitly specify a value for the primary key,
> instead use NEXTVAL('client_alerts_seq') which will return the next
> valid value and increment the sequence.
> 
> i.e:
>  insert into clients_alerts (id, client_id, alert_message,
> alert_complete, date, staff_id)
> values(NEXTVAL('client_alerts_seq'),'39','This is some alert
> text','0','2007-05-04 12:42:05','14');
> 

Or, better, he doesn't have to put a value for it as it is already the
default value for this column :

insert into clients_alerts (client_id, alert_message, alert_complete,
date, staff_id)
values('39','This is some alert text','0','2007-05-04 12:42:05','14');

Regards.


-- 
Guillaume.


Re: ERROR: duplicate key violates unique constraint "client_alerts_PK"

От
"Laurent Yaish"
Дата:
my bad... I missed the post about the default value..


On 9/12/07, Guillaume Lelarge <guillaume@lelarge.info> wrote:
> Laurent Yaish a écrit :
> > Hi Rob,
> >
> > In your insert, do not explicitly specify a value for the primary key,
> > instead use NEXTVAL('client_alerts_seq') which will return the next
> > valid value and increment the sequence.
> >
> > i.e:
> >  insert into clients_alerts (id, client_id, alert_message,
> > alert_complete, date, staff_id)
> > values(NEXTVAL('client_alerts_seq'),'39','This is some alert
> > text','0','2007-05-04 12:42:05','14');
> >
>
> Or, better, he doesn't have to put a value for it as it is already the
> default value for this column :
>
> insert into clients_alerts (client_id, alert_message, alert_complete,
> date, staff_id)
> values('39','This is some alert text','0','2007-05-04 12:42:05','14');
>
> Regards.
>
>
> --
> Guillaume.
>