web-dev-qa-db-ja.com

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

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

104

あなたのdb - >構造に行き、必要なテーブルを空にする。こちらを参照してください。

this screenshot

117
Yalamber

deletetruncateの2つのオプションがあります。

  1. delete from mytable

    自動インクリメントIDをリセットせずに、テーブルの内容をすべて削除します。この処理は非常に遅くなります。特定のレコードを削除したい場合は、末尾にwhere句を追加してください。

  2. truncate myTable

    これでテーブルがリセットされます。つまり、すべての自動インクリメンタルフィールドがリセットされます。そのDDLと非常に速いです。 truncateを使って特定のレコードを削除することはできません。

144
Sashi Kant

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

delete from tableName;

削除 :テーブルからすべての行を削除します。次の挿入は次の自動インクリメントIDを取ります。

または

truncate tableName;

切り捨て :テーブルから行も削除しますが、1から始まる新しい行から開始します。

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

121
Suresh Kamrushi

このクエリを使用してください。

DELETE FROM tableName;

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

またはこのクエリを使用することもできます。

truncate tableName;

また、他のテーブルとは関係がないようにしてください。テーブルに外部キー制約がある場合、それらのレコードは削除されず、エラーになります。

26
Code Lღver

このコマンドですべての行を削除できます。ただし、truncateコマンドを使用するとロールバックできないことを忘れないでください。

  truncate tableName;
15

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

DELETE FROM tableName;
ALTER TABLE tableName AUTO_INCREMENT = 1
10
DevWL

興味深い事実です。

私はTRUNCATEが常により良い性能を発揮すると確信していました、しかし私の場合、ほんの数行で埋められた外部キーを持つおよそ30のテーブルを持つデータベースでは行を削除します。自動インクリメントを設定すると、合計で約1秒長くなりますが、それでもまだはるかに優れています。

だから私は両方を試してみることをお勧めします、あなたのケースのためにどれがより速く働くかを見てください。

4
Sorin

クエリを作成します。 'Your_table_name'を切り捨てます。

1
Shadman Sakib