2016-01-19 136 views
0

我有兩個表插入多行

CREATE TABLE table1 (
    id bigint NOT NULL, 
    name character varying(255), 
    CONSTRAINT table1_pkey PRIMARY KEY (id) 
); 

CREATE TABLE table2 ( 
    id bigint NOT NULL, 
    name character varying(255), 
    table1_id bigint, 
    CONSTRAINT table2_pkey PRIMARY KEY (id), 
    CONSTRAINT fk_table1_table2 FOREIGN KEY (table1_id) 
    REFERENCES table1 (id) MATCH SIMPLE 
); 

現在我想要做的是在表1中的每個條目表2中添加條目

也就是說,如果我的表1有條目

|id | name | 
|1 | First | 
|2 | Second | 
|3 | Third | 

我需要建立在表2三個項目

insert into table2 (id,name,table2_id) values (nextval('table2_seq'),'new entry', 1); 
insert into table2 (id,name,table2_id) values (nextval('table2_seq'),'new entry', 2); 
insert into table2 (id,name,table2_id) values (nextval('table2_seq'),'new entry', 3); 

並且由於每個新條目只有外鍵被更改,所以我想知道是否有任何可能使這個過程自動化。 是否可以實現查詢,或者我應該看看程序?

回答

3

使用基於選擇插入:

insert into table2 (id,name,table1_id) 
select nextval('table2_seq'), 'new entry', t1.id 
from table1; 
+0

該死的我是很愚蠢的,謝謝 – user902383