あるロケールから別のロケールにデータを移動しようとしていますが、それが 2 番目のロケールにまだ存在していません。そのために私が使用しているステートメントは、実行に 20 時間かかるため、これをより効率的に行う方法についてのアイデアをいただければ幸いです。
update table
set localeid = 3
where localeid = 1
and not exists
(select id from table as b where localeid = 3 and id = b.id)
制約を使用して、更新全体を失敗させるのではなく、制約に違反している行を SQL にスキップさせる方法があるかどうか疑問に思っていました。この場合、制約はid,localeid
主キーを作成することです。
これはできますか?
ps このクエリを最適化するために必要なインデックスは配置されていますが、7,000 万を超えるエントリを持つこのデータベースのサイズが非常に大きいため、依然として時間がかかります。