私はwampserver 2.2を使っています。 phpMyAdmin(すべて選択)でテーブルの全レコードを削除したい場合は、全レコードではなく1レコードのみを削除します。すべてのレコードが削除されないのはなぜですか?
あなたのdb - >構造に行き、必要なテーブルを空にする。こちらを参照してください。
delete
とtruncate
の2つのオプションがあります。
delete from mytable
自動インクリメントIDをリセットせずに、テーブルの内容をすべて削除します。この処理は非常に遅くなります。特定のレコードを削除したい場合は、末尾にwhere句を追加してください。
truncate myTable
これでテーブルがリセットされます。つまり、すべての自動インクリメンタルフィールドがリセットされます。そのDDLと非常に速いです。 truncate
を使って特定のレコードを削除することはできません。
[SQL]タブに移動し、以下のいずれかのクエリを実行します。
delete from tableName;
削除 :テーブルからすべての行を削除します。次の挿入は次の自動インクリメントIDを取ります。
または
truncate tableName;
切り捨て :テーブルから行も削除しますが、1から始まる新しい行から開始します。
例を含む詳細なブログ: http://sforsuresh.in/phpmyadmin-deleting-rows-mysql-table/
このクエリを使用してください。
DELETE FROM tableName;
注:特定のレコードを削除するには、クエリのwhere句にも条件を指定できます。
またはこのクエリを使用することもできます。
truncate tableName;
また、他のテーブルとは関係がないようにしてください。テーブルに外部キー制約がある場合、それらのレコードは削除されず、エラーになります。
このコマンドですべての行を削除できます。ただし、truncateコマンドを使用するとロールバックできないことを忘れないでください。
truncate tableName;
キー制約が定義されているテーブルで 'Truncate tableName'は失敗します。また、テーブルのAUTO_INCREMENT
値のインデックスは再作成されません。代わりに、次のSQL構文を使用して、すべてのテーブルエントリを削除し、インデックスを1にリセットします。
DELETE FROM tableName;
ALTER TABLE tableName AUTO_INCREMENT = 1
興味深い事実です。
私はTRUNCATEが常により良い性能を発揮すると確信していました、しかし私の場合、ほんの数行で埋められた外部キーを持つおよそ30のテーブルを持つデータベースでは行を削除します。自動インクリメントを設定すると、合計で約1秒長くなりますが、それでもまだはるかに優れています。
だから私は両方を試してみることをお勧めします、あなたのケースのためにどれがより速く働くかを見てください。
クエリを作成します。 'Your_table_name'を切り捨てます。