2017-08-13 12 views
-1

UPDATEステートメントでは、大量のデータセットを含むテーブルのレコードを更新する必要があります。更新中にエラーが発生する可能性があります。私は王冠の仕事のスクリプトを実行する必要があります。UPDATE文に制限はありますか?

+1

はい、何かが間違っている可能性があります(データの完全性、間違った値、リソース圧迫など)。 – lad2025

+0

いいえ私はクエリに任意のパラメータを提供していない、私はちょうどテーブルのフラグをリセットしたい、そしてテーブルは非常に大きなデータセットを含んでいます。 –

+0

あなたのスクリプトでエラー処理をする必要があるかどうか尋ねていると思いますか?はい、失敗するかどうか気にしない限り、そうします。スクリプトがパラメータを必要としない場合でも、いくつかの理由で失敗する可能性がありますが、若者がリストアップされていますが、さらに多くありますが、* any *があるかどうかを尋ねたので、十分です。 – Solarflare

答えて

0

はい、これはあなたのストレージエンジンと、いくつかのオプションによって異なります。

  • あなたはWHERE句でキー制約を指定するか、またはLIMIT句(あるいはその両方を提供」しない限り、--safe-updatesオプションは、行の更新からあなたを禁止しています) "
  • InnoDB(デフォルトのストレージエンジン)はトランザクショナルであり、操作中に影響を受けたすべての行をロックするため、同時アクセスが制限されます。変更をロールバックして後からリカバリするときにエラーが発生した場合は、これを利用することができます。
  • MyISAM(広く使用されている古いエンジン)は高速ですが、堅牢性は低く、大規模な更新中にエラーが発生すると変更が失われる危険があります。

そうでなければ、この種の操作はそれほど珍しいことではありませんので、更新中にパフォーマンスが低下することはありませんが、適切なストレージエンジンを使用している場合は見つけてください。

関連する問題