Loops 用于删除记录的PL/SQL循环
对于大多数人来说,这将是一个简单的问题,但我找不到答案,我们的开发人员也不会帮助他们使用sql。我完全是个业余爱好者 我有一个名为User_accounts的表,它有两个字段:UserID和Value。有500万条记录。UserID对于所有记录都是唯一的 我有一个临时表,有两个相同的字段,大约有30k条记录。此外,没有重复的用户ID 对于临时表上的每条记录,我想从用户帐户中删除相应的记录Loops 用于删除记录的PL/SQL循环,loops,plsql,Loops,Plsql,对于大多数人来说,这将是一个简单的问题,但我找不到答案,我们的开发人员也不会帮助他们使用sql。我完全是个业余爱好者 我有一个名为User_accounts的表,它有两个字段:UserID和Value。有500万条记录。UserID对于所有记录都是唯一的 我有一个临时表,有两个相同的字段,大约有30k条记录。此外,没有重复的用户ID 对于临时表上的每条记录,我想从用户帐户中删除相应的记录 我可以运行一个简单的delete语句3万次。这将需要永远的运行。必须有一个非常简单的查询来遍历temp表。您
我可以运行一个简单的delete语句3万次。这将需要永远的运行。必须有一个非常简单的查询来遍历temp表。您能帮助我吗?您的delete语句可以一次性删除所有选定的ID,只要有一个合适的where子句,它可以引用另一个表,例如:
delete user_accounts u
where exists (
select null
from temp_table t
where t.userid = u.userid
);
此操作不需要游标,也不需要多次运行简单的delete语句。从用户_帐户中删除,其中用户ID在从临时文件中选择用户ID。您也可以在存在的地方使用。