【ORACLE】从A表中删除B表中不存在的纪录

来源:百度知道 编辑:UC知道 时间:2024/06/05 17:01:09
有两个表A和B,都是以ID为主键,A表中的纪录数大于B表。现需要删除A表中ID在B表中不存在的纪录。请问如何才能比较高效率的删除。
数据量:A表-350万条左右。
B表-100万条左右。

索引在ID上吗,不是的话弄成索引。
create table c as select * from a where id in (select id from b);
TRUNCATE TABLE a;
rename c to a;

算了,这么来感觉更麻烦,还是直接delete吧,你睡一觉自然就好了。

用子查询吧
delete A where not exists(
select 1 from B where A.id = B.id
)