-1

何千ものフィールドを含むテーブルがあり、そのうちのいくつかは顧客の失敗により重複しており、修正する必要があります。それらを見つけて行ごとに削除することはできますが、より迅速な回避策を探しています。

これらのいくつかは他のテーブルに関連しているため、関係を気にせずに直接削除することはできません。最初に条件なしで単純な DELETE コマンドを実行して、関係に含まれていない行を削除します。これにより、関係のないすべての行が削除され、残りの行が迅速に実行されます。

エラーをスキップして関連のないすべての行を削除するにはどうすればよいですか? 現在、クエリを実行すると、最初に関連する ID が見つかったときに停止します。(データベースで競合が発生しました ....)

助言がありますか?

4

1 に答える 1

1

削除に外部結合を使用できます (関連するテーブルが結合の反対側にある場合)。外部結合で ID が null の場合、制約違反が発生しないため安全に削除できます。

ただし、大規模で無制限の削除は、私にとって大きなリスクのように思えます。バックアップがあることを確認してください。

于 2013-05-14T11:18:30.533 に答える