从表中选择并将新记录插入另一个表但更改一些值

时间:2011-08-09 10:26:28

标签: sql oracle select insert

我在两个表之间有一对多的关系......比如组织和成员

我想基于现有的组织(ID 111)创建一个新的组织,并复制所有成员,但将它们与新创建的组织相关联。

一些伪代码..

-- Just create a new organisation based on the new name and address
-- passed to the proc.
Insert into Organisation (newOrganisationName, newAddress) 
returning Organisation_ID into v_orgID;

所以现在我在v_orgID中返回了新的组织ID,例如999,我希望从现有组织中复制ID为111的成员,并将这些成员与新的OrgID相关联。

实现此目的的最佳方法是什么...我应该循环插入还是可以使用Insert Into - 从方法中选择

INSERT INTO Members (OrganisationID, Membername, MemberAddress)
(SELECT  v_orgID, MemberName, MemberAddress FROM Member
 WHERE  OrganisationId = 111)

谢谢米克

2 个答案:

答案 0 :(得分:7)

只需将v_orgID作为数字插入查询:

INSERT INTO ... (SELECT 999, MemberName, MemberAddress FROM Member WHERE  OrganisationId = 111)

999作为新的OrganizationId。

答案 1 :(得分:3)

使用INSERT / SELECT,更改值:

INSERT INTO Members (OrganisationID, Membername, MemberAddress)
SELECT  999, MemberName, MemberAddress FROM Member
 WHERE  OrganisationId = 111
相关问题