我有两张桌子
create table A(id text, data text, has_b boolean default false);
create table B(id text, a_id text, data text);
没有主键,没有索引。 a_id
中的字段table B
将与id
中的table A
匹配。
如果has_b
中引用了A.id
,我想将字段B.a_id
设置为true。
这是在创建数据库并插入所有数据后的一次更新,因此我可以根据需要对数据库进行任何操作。
目前我正在使用以下更新语句,但速度太慢(我有超过500万条记录需要更新)。
UPDATE A SET has_b = TRUE
WHERE EXISTS (SELECT 1 FROM B WHERE a_id = A.id limit 1);
我也试过这个,但效果相似:
UPDATE A SET has_B = TRUE FROM B WHERE a_id = A.id;
有没有更快的方法在数据库中进行此类更新?或者其他一些解决方案?
提前感谢任何建议。