我在我们的 Oracle 数据库中执行一次大规模更新时遇到问题。
我想批量插入映射表,我们可以称之为map
还有另外两个表,我必须从中获取数据 第一个表是帐户表,我可以从中选择所需的帐户以使用此查询插入:
select account_id
from account
where company_id in (
select company_id
from company
where company_name = 'string');
此查询将根据我要插入的公司名称选择我的所有帐户。
接下来我有一个我们可以称之为组的表,在这个表中我有我插入的组的确切数量,组有 UID,所以我们有 group_id 1 到 500。
这是我需要做的:我需要在表映射中插入帐户和组之间的 UID 映射。没有需要执行的特殊顺序
insert into map (account_id, group_id)
values (number,number);
但不幸的是,我不知道如何使用包含多个结果的选择进行这种大规模插入,以及如何计算循环。
所以我的想法是做这样的事情:
insert into map (account_id, group_id) values ((select account_id
from account
where company_id in (
select company_id
from company
where company_name = 'string')),loop from 1 to 500);
规则group_id
可以插入多个account_id
,但一个account_id
只能链接到一组。
当然这个查询是行不通的,我只是想表达我想做的事情。希望这是有道理的。
我因为我知道我到底想在哪里插入什么,并且我知道我有 500account_id
秒和 50group_id
秒的所有计数。它们也按顺序表示account_id
1 到 500 和group_id
1 到 500,所以我认为在这种情况下,以某种方式循环插入应该相当容易。
我希望我已经尽可能地把自己说清楚了。
感谢您的回答和建议!