Saya menggunakan wampserver 2.2. Ketika saya ingin menghapus semua record dari sebuah tabel di phpMyAdmin (pilih semua) itu hanya menghapus satu record, tidak semua record. Mengapa tidak menghapus semua catatan?
SHIFT-DEL
Saya menggunakan wampserver 2.2. Ketika saya ingin menghapus semua record dari sebuah tabel di phpMyAdmin (pilih semua) itu hanya menghapus satu record, tidak semua record. Mengapa tidak menghapus semua catatan?
SHIFT-DEL
Jawaban:
Anda memiliki 2 opsi delete
dan truncate
:
delete from mytable
Ini akan menghapus semua konten tabel, tidak menyetel ulang id autoincremental, proses ini sangat lambat. Jika Anda ingin menghapus rekaman tertentu menambahkan klausa where di akhir.
truncate myTable
Ini akan mengatur ulang tabel yaitu semua bidang penambahan otomatis akan disetel ulang. Ini adalah DDL dan sangat cepat. Anda tidak dapat menghapus rekaman tertentu melalui truncate
.
Pergi ke tab Sql, jalankan salah satu dari kueri di bawah ini:
delete from tableName;
Hapus : akan menghapus semua baris dari tabel Anda. Penyisipan berikutnya akan mengambil id kenaikan otomatis berikutnya.
atau
truncate tableName;
Truncate : juga akan menghapus baris dari tabel Anda tetapi akan dimulai dari baris baru dengan 1.
Blog mendetail dengan contoh: http://sforsuresh.in/phpmyadmin-deleting-rows-mysql-table/
Gunakan kueri ini:
DELETE FROM tableName;
Catatan: Untuk menghapus beberapa catatan tertentu Anda bisa memberikan kondisi di mana klausa dalam kueri juga.
ATAU Anda juga dapat menggunakan kueri ini:
truncate tableName;
Juga ingat bahwa Anda tidak boleh memiliki hubungan apapun dengan tabel lain. Jika akan ada batasan kunci asing di tabel maka record tersebut tidak akan dihapus dan akan memberikan error.
'Truncate tableName' akan gagal pada tabel dengan batasan kunci yang ditentukan. Ini juga tidak akan mengindeks ulang AUTO_INCREMENT
nilai tabel . Sebagai gantinya, Hapus semua entri tabel dan setel ulang pengindeksan kembali ke 1 menggunakan sintaks sql ini:
DELETE FROM tableName;
ALTER TABLE tableName AUTO_INCREMENT = 1
Fakta yang menarik.
Saya yakin TRUNCATE akan selalu berkinerja lebih baik, tetapi dalam kasus saya, untuk db dengan kira-kira 30 tabel dengan kunci asing, diisi hanya dengan beberapa baris, butuh waktu sekitar 12 detik untuk MENGHANCURKAN semua tabel, dibandingkan dengan hanya beberapa ratus milidetik untuk MENGHAPUS baris. Menyetel kenaikan otomatis menambahkan total sekitar satu detik, tetapi masih jauh lebih baik.
Jadi saya sarankan untuk mencoba keduanya, lihat mana yang bekerja lebih cepat untuk kasus Anda.
tulis kueri: truncate 'Your_table_name';
DELETE FROM tableName