no se puede insertar la fila en la identificación, pero la fila no existe

8

Aquí está el extraño problema que estoy enfrentando. Estoy tratando de ingresar datos usando la siguiente consulta

insert into product_product 
(id, product_tmpl_id, make_equip, model_equip, name_template, serial_num_equip, location_equip, issue_date_equip, issue_to_equip, remarks_equip, pr, ch,  categ_id,valuation) 
values (700,700,'Nikon','Action 10x50 Lookout','Nikon Action 10x50 Lookout','671386','40 Wall St.','5/13/2004 12:00:00 AM','','OM''s OFFICE',62,72,502,'manual periodic');

Me sale el error:

ERROR:  duplicate key value violates unique constraint "product_product_pkey"
DETAIL:  Key (id)=(700) already exists.

********** Error **********

ERROR: duplicate key value violates unique constraint "product_product_pkey"
SQL state: 23505
Detail: Key (id)=(700) already exists.

Ejecuté select query en ese registro como este:

select * from product_product
where id=700

Devuelve columnas sin datos (los datos también incluyen ID)

Traté de ejecutar una consulta de actualización como esta:

update product_product set 
                        product_tmpl_id=700,
                        make_equip='Nikon', 
                        model_equip='Action 10x50 Lookout', 
                        name_template='Nikon Action 10x50 Lookout', 
                        serial_num_equip='671386', 
                        location_equip='40 Wall St.', 
                        issue_date_equip='5/13/2004 12:00:00 AM', 
                        issue_to_equip='',
                        remarks_equip='OM''s OFFICE', 
                        pr=62, 
                        ch=72, 
                        categ_id=502,valuation='manual periodic' where id=700;

el resultado fue:

Query returned successfully: 0 rows affected, 1 ms execution time.

Traté de eliminar la consulta también pero la misma salida.

Mostrar también todos los datos no muestra nada como id 700.

No sé por qué está pasando esto.

Volví a indexar y aspiré mi tabla del mantenimiento pero el mismo resultado.

Por favor, hágame saber qué tiene de malo.

Gracias

Editar

aquí está mi tabla de creación

CREATE TABLE product_product
(
  id serial NOT NULL,
  create_uid integer,
  create_date timestamp without time zone,
  write_date timestamp without time zone,
  write_uid integer,
  ean13 character varying(13), -- EAN13 Barcode
  color integer, -- Color Index
  image bytea, -- Image
  price_extra numeric, -- Variant Price Extra
  default_code character varying(64), -- Internal Reference
  name_template character varying(128), -- Template Name
  .....
  description_sale text,
  procure_method character varying,
  produce_delay double precision,
  uom_id integer,
  name character varying,
  office_equip character varying, -- Office(Equipment)
  lease_agreement_equip character varying, -- Lease Agreement
  reg_exp_date_equip character varying, -- Registration Expiration Date
  CONSTRAINT product_product_pkey PRIMARY KEY (id ),
  CONSTRAINT product_product_categ_temp2_fkey FOREIGN KEY (categ_temp2)
      REFERENCES product_category (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE SET NULL,
  CONSTRAINT product_product_categ_temp3_fkey FOREIGN KEY (categ_temp3)
      REFERENCES product_category (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE SET NULL,
  CONSTRAINT product_product_categ_temps_fkey FOREIGN KEY (categ_temps)
      REFERENCES product_category (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE SET NULL,
  CONSTRAINT product_product_categg_temp_fkey FOREIGN KEY (categg_temp)
      REFERENCES product_category (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE SET NULL,
  CONSTRAINT product_product_ch_fkey FOREIGN KEY (ch)
      REFERENCES product_category (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE SET NULL,
  CONSTRAINT product_product_create_uid_fkey FOREIGN KEY (create_uid)
      REFERENCES res_users (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE SET NULL,
  CONSTRAINT product_product_my_products_fkey FOREIGN KEY (my_products)
      REFERENCES product_product (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE SET NULL,
  CONSTRAINT product_product_phone_data_id_fkey FOREIGN KEY (phone_data_id)
      REFERENCES phone_datas (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE SET NULL,
  CONSTRAINT product_product_phone_id_fkey FOREIGN KEY (phone_id)
      REFERENCES phone_types (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE SET NULL,
  CONSTRAINT product_product_pr_fkey FOREIGN KEY (pr)
      REFERENCES product_category (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE SET NULL,
  CONSTRAINT product_product_product_tmpl_id_fkey FOREIGN KEY (product_tmpl_id)
      REFERENCES product_template (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE CASCADE,
  CONSTRAINT product_product_subchild_fkey FOREIGN KEY (subchild)
      REFERENCES product_category (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE SET NULL,
  CONSTRAINT product_product_temp_id_fkey FOREIGN KEY (temp_id)
      REFERENCES product_category (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE SET NULL,
  CONSTRAINT product_product_write_uid_fkey FOREIGN KEY (write_uid)
      REFERENCES res_users (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE SET NULL
)
WITH (
  OIDS=FALSE
);

Tengo más de 200 columnas, así que las eliminé de aquí ...

La imagen de las últimas filas en product_product es ingrese la descripción de la imagen aquí

Saghir A. Khatri
fuente

Respuestas:

3

El ID de la columna se define como SERIAL, que es similar a la propiedad AUTO_INCREMENT admitida por otras bases de datos. Por lo tanto, debe omitirlo en la instrucción INSERT o usar la palabra clave DEFAULT y la nueva identificación se generará automáticamente.

Ver sección 8.1.4. Tipos de serie: http://www.postgresql.org/docs/9.3/static/datatype-numeric.html

JGA
fuente