Saya mencoba untuk menghapus semua tabel dari database kecuali satu, dan saya akhirnya mengalami kesalahan berikut:
Tidak dapat menghapus atau memperbarui baris induk: batasan kunci asing gagal
Tentu saja saya bisa coba-coba untuk melihat apa kendala utama itu dan akhirnya menghapus semua tabel tapi saya ingin tahu apakah ada cara cepat untuk memaksa drop semua tabel (karena saya akan dapat memasukkan kembali yang saya tidak ingin dihapus).
Google mengarahkan saya ke beberapa situs yang menyarankan metode berikut:
mysql> SET foreign_key_checks = 0;
mysql> drop table ...
mysql> SET foreign_key_checks = 1;
Jawaban singkatnya adalah itu tidak benar-benar melakukan trik karena saya akhirnya menerima kesalahan yang sama sementara saya bisa menghapus beberapa tabel lagi. Saya telah melihat pada cara Stack Overflow untuk menghubungkan semua kunci asing ke tabel tertentu tapi itu terlalu memakan waktu kecuali saya skrip semuanya (yang bisa dilakukan dalam kasus tidak ada pilihan lain)
Database 4.1, jadi saya tidak bisa menggunakan DROP DATABASE
Ide ide?
sumber
Jawaban:
Karena Anda tidak tertarik untuk menyimpan data apa pun, jatuhkan seluruh database dan buat yang baru.
sumber
Ini mungkin berguna untuk seseorang yang berakhir di sini dari pencarian. Pastikan Anda mencoba menjatuhkan a tabel dan bukan tampilan .
SET foreign_key_checks = 0
adalah untuk mengatur pemeriksaan kunci asing ke off dan kemudianSET foreign_key_checks = 1
untuk mengatur pemeriksaan kunci asing kembali. Sementara cek dari tabel dapat dijatuhkan, pemeriksaan kemudian dihidupkan kembali untuk menjaga integritas struktur tabel.sumber
Jika Anda menggunakan phpmyadmin maka fitur ini sudah ada di sana.
sumber
Anda dapat menggunakan langkah-langkah berikut, ini berhasil bagi saya untuk menjatuhkan tabel dengan kendala, solusi sudah dijelaskan dalam komentar di atas, saya hanya menambahkan tangkapan layar untuk itu -
sumber
Drop database ada di semua versi MySQL. Tetapi jika Anda ingin mempertahankan struktur tabel, berikut adalah sebuah ide
mysqldump --no-data --add-drop-database --add-drop-table -hHOSTNAME -uUSERNAME -p> dump.sql
Ini adalah program, bukan perintah mysql
Kemudian, masuk ke mysql dan
source dump.sql;
sumber
Solusi sederhana untuk menjatuhkan semua tabel sekaligus dari terminal.
Ini melibatkan beberapa langkah di dalam shell mysql Anda (bukan solusi satu langkah), ini berhasil dan menyelamatkan saya.
Bekerja untuk versi Server: 5.6.38 MySQL Community Server (GPL)
Langkah-langkah yang saya ikuti:
Shell MySQL
sumber