PostgreSQL: duplicate key value violates unique constraint on UPDATE command -
when doing update query, got following error message:
error: duplicate key value violates unique constraint "tablea_pkey" detail: key (id)=(47470) exists. however, our update query not affect primary key. here simplified version:
update tablea set items = ( select array_to_string( array( select b.value tableb b b.a_id = b.id group b.name ), ',' ) ) a.end_at between now() , now() - interval '1 day'; we ensured primary key sequence synced:
\d tablea_id_seq which produces:
column | type | value ---------------+---------+-------------------------- sequence_name | name | tablea_id_seq last_value | bigint | 50364 start_value | bigint | 1 increment_by | bigint | 1 max_value | bigint | 9223372036854775807 min_value | bigint | 1 cache_value | bigint | 1 log_cnt | bigint | 0 is_cycled | boolean | f is_called | boolean | t looking maximum table index:
select max(id) tablea; we got lower value:
max ------- 50363 (1 row) have idea on why such behavior? if exclude problematic id, works.
another strange point replacing previous update by:
update tablea set items = ( select array_to_string( array( select b.value tableb b b.a_id = b.id group b.name ), ',' ) ) a.id = 47470; it works well. missing something?
edit: triggers
i have no user-defined triggers on table:
select t.tgname, c.relname pg_trigger t join pg_class c on t.tgrelid = c.oid c.relname = 'tablea' , t.tgisinternal = false ; which returns no row.
note: using psql (postgresql) 9.3.4 version.
not sure cause. however, deleting 2 (non vital) records corresponding existing ids (?) solved issue.
Comments
Post a Comment