0
問題我有一個表像這樣定義:Postgres的:用插入與選擇
CREATE TABLE wp_master (
gid integer NOT NULL DEFAULT nextval('wp_master_gid_seq'::regclass),
name character varying(80),
....
type integer DEFAULT 4,
CONSTRAINT p_key PRIMARY KEY (gid),
);
我希望將數據從另一個表,所以我
insert into wp_master (name, .... type) select "NAME", ...., 1 from ."Tiri2011";
插入表中,但我得到的錯誤:
ERROR: duplicate key value violates unique constraint "p_key"
DETAIL: Key (gid)=(2) already exists.
爲什麼postgres試圖把任何東西放到gid字段中,當我明確沒有將它包含在col列表中時UMNS?我認爲gid從序列中獲得了它的價值。
羅素
我原本以爲做到了這一點: CREATE SEQUENCE base.wp_master_gid_seq INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 114 CACHE 1; –
我也嘗試setval,但問題仍然存在。 'select max(gid)from base.wp_master;' 返回113 –
我弄明白了。問題在於序列在另一個模式中,所以無論我在與表格相同的模式中做了什麼,它都沒有作用。我已經接受Foibs的回答,因爲儘管它沒有真正回答這個問題,但它給了我用來解決問題的重要信息。 –