IDに行を挿入できませんが、行が存在しません


8

これが私が直面している奇妙な問題です。次のクエリを使用してデータを入力しようとしています

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

エラーが発生します:

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.

このレコードに対して次のように選択クエリを実行しました。

select * from product_product
where id=700

データのない列を返します(データにはIDも含まれます)

私はこのような更新クエリを実行しようとしました:

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;

結果は:

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

クエリも削除しようとしましたが、同じ出力です。

また、すべてのデータがid 700のようなものを何も示さないことを示します。

なぜこれが起こっているのか分かりません。

インデックスを再作成し、メンテナンスからテーブルをバキュームしましたが、結果は同じです。

Plzは何が悪いのか教えてくれました。

ありがとう

編集する

これが私の作成テーブルです

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

200以上の列があるので、ここから削除しました。

product_productの最後の行の画像は ここに画像の説明を入力してください

回答:


3

IDは、他の一部のデータベースでサポートされているAUTO_INCREMENTプロパティと同様のSERIALとして定義されています。そのため、INSERTステートメントでそれを省略するか、DEFAULTキーワードを使用すると、新しいIDが自動的に生成されます。

セクション8.1.4を参照してください。シリアルタイプ:http : //www.postgresql.org/docs/9.3/static/datatype-numeric.html

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.