phpMyAdminのMYSQLのテーブル内のすべてのレコードを削除します


122

wampserver 2.2を使用しています。phpMyAdminでテーブルのすべてのレコードを削除する場合(すべて選択)、すべてのレコードではなく1つのレコードのみを削除します。すべてのレコードが削除されないのはなぜですか?


3
クエリによって異なりますが、このように実行しましたか?DELETE FROM tableName
John Woo

テーブル名を強調表示して押しますSHIFT-DEL
DevlshOne 2013

回答:


130

db->構造に移動し、必要なテーブルを空にします。こちらをご覧ください:

このスクリーンショット


167

あなたは2つのオプションがdeleteあり、truncate

  1. delete from mytable

    これにより、テーブルのすべてのコンテンツが削除され、自動増分IDはリセットされません。このプロセスは非常に低速です。特定のレコードを削除する場合は、末尾にwhere句を追加します。

  2. truncate myTable

    これによりテーブルがリセットされます。つまり、すべての自動増分フィールドがリセットされます。そのDDLと非常に高速です。を使用して特定のレコードを削除することはできませんtruncate


130

[SQL]タブに移動して、次のいずれかのクエリを実行します。

delete from tableName;

削除:テーブルからすべての行を削除します。次の挿入では、次の自動インクリメントIDが使用されます。

または

truncate tableName;

Truncate:テーブルから行も削除しますが、新しい行は1から始まります。

例の詳細なブログ:http : //sforsuresh.in/phpmyadmin-deleting-rows-mysql-table/


27

このクエリを使用します。

DELETE FROM tableName;

注:特定のレコードを削除するには、クエリのwhere句で条件を指定することもできます。

または、このクエリも使用できます。

truncate tableName;

また、他のテーブルとの関係はありません。テーブルに外部キー制約がある場合、それらのレコードは削除されず、エラーが発生します。


19

このコマンドですべての行を削除できますが、truncateコマンドを実行すると、ロールバックできないことに注意してください。

  truncate tableName;

11

テーブル名の切り捨て」は、キー制約が定義されているテーブルでは失敗します。また、テーブルAUTO_INCREMENT値のインデックスを再作成しません。代わりに、次のSQL構文を使用して、すべてのテーブルエントリを削除し、インデックスを1にリセットします。

DELETE FROM tableName;
ALTER TABLE tableName AUTO_INCREMENT = 1

4

興味深い事実。

TRUNCATEは常により良いパフォーマンスを発揮すると確信していましたが、私の場合、外部キーを含む約30のテーブルがあり、数行しか入力されていないデータベースの場合、すべてのテーブルをTRUNCATEするのに数百ミリ秒しかかかりませんでした。行を削除します。自動インクリメントを設定すると、合計で約1秒追加されますが、それでもずっと優れています。

したがって、両方を試してみることをお勧めします。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.