我在两个表之间有一对多的关系......比如组织和成员
我想基于现有的组织(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)
谢谢米克
答案 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