1

削除はDML(Data Manipulation Language)です。Delete コマンドは、既存のテーブルからレコードを削除します。*の構文Delete

sql> Delete from .

これにより、テーブルからすべてのレコードが削除されます

sql> Delete from
      Where  ** 

これにより、特定のレコード セットが削除されます。

注:削除は Autocommit ステートメントではありません (実際、どの DML も自動コミットではありません)。

Drop と Truncate はどちらも DDL (Data Definition Language) です。

構造を持つテーブルを削除 {削除または削除} します。自動コミット文です。ドロップ 一度発射されたドロップはロールバックできません。

構文:

sql>drop table

Truncate は、テーブルからすべてのレコードを削除するために使用されるコマンドです。ただし、テーブルの構造は同じままです。これは自動コミットステートメントでもあります。

構文;

sql>truncate table**

切り捨てをロールバックできますか?

4

3 に答える 3

12

DELETE は、WHEREステートメントで選択された行を処理します。その使用は、運用アプリケーションを実行する規則の一部です。たとえば、1 か月以上前に「完了」とマークされたすべての行を削除できます。

DELETE は、トランザクションの一部として実行できます。つまり、DELETE 操作はコミットまたはロールバックできます。

TRUNCATE は、テーブル定義を維持しながら、テーブルからすべての行を迅速に削除します。(行ごとの DELETE は、特に多数のキーを持つテーブルの場合、時間がかかる場合があります。) これは、毎週の本番用に最初から空であるログ テーブルなどに役立ちます。インデックスをリセットし、未使用のディスク ストレージを解放するという便利な副作用があります。たとえば、TRUNCATE を使用して、数百万行を含んでいたログ テーブルの内容を一掃し、たとえば、1 週間分の行しか含まない運用規律に切り替えました。

DROP は、すべての行とテーブルの定義を迅速に削除します。これは、操作用の DBMS スキーマのセットアップまたは新しいサーバーへのデータの移行に関連して最も頻繁に使用されます。

TRUNCATE および DROP は、データ定義ステートメントと見なされます。そのため、トランザクションの一部にすることはできず、ロールバックすることもできません。

日常的な運用で TRUNCATE または DROP を使用していることに気付いた場合は、その理由を注意深く理解する必要があります。これらは、DELETE に比べて鈍い手段です。

于 2013-09-07T12:56:21.947 に答える
1

このDELETEコマンドは、テーブルから行を削除するために使用されます。WHERE句を使用して、一部の行のみを削除できます。

TRUNCATEテーブルからすべての行を削除します。操作はロールバックできず、トリガーは起動されません。

このDROPコマンドは、データベースからテーブルを削除します。すべてのテーブルの行、インデックス、および権限も削除されます。DML トリガーは起動されません。

これをチェックして、

于 2013-09-07T12:51:35.350 に答える
0

「ドロップ」はテーブルを完全に削除します。もう存在しません。

"Truncate" は、テーブルからすべての行をすばやく削除する方法です。

「削除」は、条件に一致する行を削除します。

参照: SQL での TRUNCATE と DELETE の違いは何ですか

于 2013-09-07T12:50:05.117 に答える