Zeile bei ID kann nicht eingefügt werden, Zeile ist jedoch nicht vorhanden


8

Hier ist das seltsame Problem, mit dem ich konfrontiert bin. Ich versuche, Daten mit der folgenden Abfrage einzugeben

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');

Ich bekomme den Fehler:

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.

Ich habe eine Auswahlabfrage für diesen Datensatz wie folgt ausgeführt:

select * from product_product
where id=700

Es werden Spalten ohne Daten zurückgegeben (Daten enthalten auch ID).

Ich habe versucht, die Update-Abfrage folgendermaßen auszuführen:

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;

Ergebnis war:

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

Ich habe versucht, Abfrage zu löschen, aber die gleiche Ausgabe.

Außerdem zeigen alle Daten nichts wie ID 700.

Ich weiß nicht, warum das passiert.

Ich habe meine Tabelle indiziert und von der Wartung abgesaugt, aber das gleiche Ergebnis.

Bitte lassen Sie mich wissen, was daran falsch ist.

Vielen Dank

Bearbeiten

Hier ist meine Tabelle erstellen

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
);

Ich habe mehr als 200 Spalten, also habe ich sie von hier entfernt ...

Das Bild der letzten Zeilen in product_product ist Geben Sie hier die Bildbeschreibung ein

Antworten:


3

Die Spalten- ID ist als SERIAL definiert, ähnlich der Eigenschaft AUTO_INCREMENT, die von einigen anderen Datenbanken unterstützt wird. Sie sollten es also in der INSERT- Anweisung weglassen oder das Schlüsselwort DEFAULT verwenden, und die neue ID wird automatisch generiert.

Siehe Abschnitt 8.1.4. Serielle Typen: http://www.postgresql.org/docs/9.3/static/datatype-numeric.html

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.