この記事のガイド: テーブル内のデータを削除するには、削除と切り捨ての 2 つの方法があります。TRUNCATE TABLE は、1 行の削除を記録せずにテーブル内のすべての行を削除するために使用されます。 TRUNCATE TABLE は、WHERE 句のない DELETE ステートメントに似ていますが、TRUNCATE TABLE の方が高速で、使用するシステム リソースとトランザクション ログ リソースが少なくなります。以下はSQLにおけるTruncateの使い方について説明しています。 テーブルが不要になった場合は drop を使用します。テーブルを保持しながらすべてのレコードを削除する場合は truncate を使用します。一部のレコードを削除する場合 (常に WHERE 句を使用) は delete を使用します。 Truncate は、テーブル内のすべてのデータをすばやくクリアできる SQL 構文です。また、カウントをゼロにリセットし、自動的に増分された値でフィールドを再計算することもできます。 1. 構文を切り捨てる[ { データベース名.[ スキーマ名 ]. | スキーマ名. } ] テーブル名 [; ] パラメータ データベース名 スキーマ名 テーブル名 2. Truncateの使用上の注意1. TRUNCATE TABLE は、WHERE 句のない DELETE ステートメントと機能的に同じです。どちらもテーブル内のすべての行を削除します。ただし、TRUNCATE TABLE は DELETE よりも高速で、使用するシステム リソースとトランザクション ログ リソースが少なくなります。 2. DELETE ステートメントは一度に 1 行を削除し、削除された行ごとにトランザクション ログにエントリを記録します。 TRUNCATE TABLE は、テーブル データの格納に使用されたデータ ページを解放することによってデータを削除し、トランザクション ログにページの解放のみを記録します。 3. TRUNCATE TABLE はテーブル内のすべての行を削除しますが、テーブル構造とその列、制約、インデックスなどは変更されません。新しい行を識別するために使用されるカウント値は、列のシードにリセットされます。 ID カウント値を保持する場合は、代わりに DELETE を使用します。テーブル定義とそのデータを削除する場合は、DROP TABLE ステートメントを使用します。 4. FOREIGN KEY 制約によって参照されるテーブルの場合、TRUNCATE TABLE は使用できません。代わりに、WHERE 句のない DELETE ステートメントを使用する必要があります。 TRUNCATE TABLE はログに記録されないため、トリガーをアクティブ化できません。 5. TRUNCATE TABLE は、インデックス ビューに参加しているテーブルには使用できません。 6. TRUNCATE TABLE を使用して削除されたテーブルにデータを追加する場合は、UPDATE STATISTICS を使用してインデックス情報を維持します。 7. ROLLBACK ステートメントがある場合、DELETE 操作は元に戻されますが、TRUNCATE は元に戻されません。 3. TRUNCATE TABLEは次のテーブルでは使用できません1. FOREIGN KEY 制約によって参照されるテーブル。 (自分自身を参照する外部キーを持つテーブルを切り捨てることができます。) 2. インデックス ビューに参加するテーブル。 3. トランザクション レプリケーションまたはマージ レプリケーションを使用して公開されたテーブル。 4. 上記の特性の 1 つ以上を持つテーブルの場合は、DELETE ステートメントを使用します。 5. TRUNCATE TABLE 操作では個々の行の削除が記録されないため、トリガーをアクティブ化できません。 IV. TRUNCATE、Drop、Deleteの違い1. Drop と Delete では、テーブルのデータ (定義) のみが削除されます。Drop ステートメントでは、テーブル構造、依存制約、トリガー、およびインデックスが削除されます。テーブルに依存するストアド プロシージャ/関数は保持されますが、無効になります。 3. 削除ステートメントはテーブルが占有する範囲に影響を与えず、高水準点は元の位置に残ります。 drop ステートメントは、テーブルによって占有されているすべてのスペースを解放します。デフォルトでは、再利用ストレージが使用されない限り、truncate ステートメントは minexents の範囲までスペースを解放します。切り捨ては最高水準点をリセットします(最初に戻ります)。 4. 効率: 削除 > 切り捨て > 削除 5. セキュリティ: 特にバックアップがない場合は、drop と truncate を慎重に使用してください。一部のデータを削除する場合は、where 句を指定した delete を使用できます。ロールバック セグメントは十分な大きさである必要があります。テーブルを削除する場合は、drop を使用できます。テーブルを保持したままテーブル内のすべてのデータを削除したい場合は、トランザクションに関連しない場合は truncate を使用できます。トランザクションに関連している場合やトリガーをトリガーする場合は、delete を使用します。テーブル内のフラグメントを整理する場合は、truncate の後に reuse stroage を使用し、データを再インポートして挿入します。 6.delete は DML ステートメントであり、自動的には送信されません。 Drop/truncate はどちらも DDL ステートメントであり、実行後に自動的にコミットされます。 7. Drop は通常、テーブル、スキーマ、インデックス、ビュー、整合性制約などのデータ全体を削除するために使用されます。delete は、テーブル内のタプルなどのローカル データを削除するために使用されます。 8. DROPはテーブル構造を削除します。DELETEはデータのみをクリアします。 9. テーブルが不要になった場合は drop を使用します。テーブルを保持したまますべてのレコードを削除する場合は truncate を使用します。一部のレコードを削除する場合 (常に WHERE 句を使用) は delete を使用します。 MYSQL での Truncate の詳細な使用法に関するこの記事はこれで終わりです。MYSQL Truncate に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: HTML テーブル マークアップ チュートリアル (48): CSS で変更されたテーブル
>>: 廃止された Docker は Podman に置き換えられますか?
目次インデックス プッシュダウンとは何ですか?インデックスプッシュダウン最適化の原理インデックスプッ...
シンプルな Linux 推測ゲームのソースコードゲームのルール:数字当てゲームは通常 2 人でプレイ...
この記事では、例を使用して MySQL プロセス関数の一般的な使用方法を説明します。ご参考までに、詳...
require メソッドの読み込みルールキャッシュからの読み込みを優先するコアモジュールパス形式のモ...
効果: コード: <テンプレート> <div class="back-t...
MySQL5.7.21のインストールとパスワード設定のチュートリアルは次のとおりです。公式リファレン...
デフォルトでは、Nginx は IP アドレスごとに 1 つの SSL 証明書のみをサポートします。...
構造(位置)擬似クラスセレクタ(CSS3) :first-child : 指定されたセレクタは、親要...
MySQL 8.0のインストールと設定方法は参考までに。具体的な内容は以下のとおりです。ダウンロード...
最近、弁護士推薦のウェブサイトを作成していたのですが、検索ボックスに問題がありました。検索ボックス内...
目次1. コンテナライフサイクル管理(1)ドッカー実行(2)スタート/ストップ/リスタート(3)ドッ...
目次背景解決策1: 古いデータをバックアップするオプション2: テーブルを分割する解決策3: tid...
序文最近、同社の業務の一部がコンピュータルームに移転し、ホストリソースの監視と管理をより便利に行うた...
標準の ab は単一の URI でのストレス テストのみをサポートしており、実際のニーズを満たしてい...
前の 2 つの記事の簡単な紹介を通じて、Bootstrap についての基礎的な理解が得られました。 ...