Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Jatuhkan database MySQL yang cocok dengan beberapa wildcard?

Ide dasarnya adalah menjalankan "tampilkan tabel" di database Anda, dan gunakan hasilnya untuk memilih tabel yang Anda inginkan. Saya tidak berpikir MySQL memungkinkan Anda melakukan apa pun dengan hasil dari "tampilkan tabel", tapi saya mungkin salah.

Inilah solusi cepat dan kotor menggunakan shell:

mysql -u your_user -D your_database_name -e "show tables" -s | 
  egrep "^Whatever_" | 
  xargs -I "@@" echo mysql -u your_user -D your_database_name -e "DROP TABLE @@"

Itu akan mencetak semua perintah shell untuk menjatuhkan tabel yang dimulai dengan "Whatever_". Jika Anda ingin benar-benar menjalankan perintah tersebut, hapus kata "echo".

EDIT :Saya lupa menjelaskan di atas! Saya tidak tahu seberapa familiar Anda dengan skrip shell, tapi begini:

mysql -u your_user -D your_database_name -e "show tables" -s

mencetak daftar semua tabel Anda, dengan header "Tables_in_your_database_name". Output dari itu disalurkan (simbol | berarti "menyalurkan", seperti yang diteruskan) melalui perintah berikutnya:

egrep "^Whatever_"

mencari setiap baris yang dimulai (simbol ^ itu berarti "makhluk dengan") kata "Apa pun_" dan hanya mencetaknya. Terakhir, kami menyalurkan daftar tabel "Whatever_*" itu melalui perintah:

xargs -I "@@" echo mysql -u your_user -D your_database_name -e "DROP TABLE @@"

yang mengambil setiap baris dalam daftar nama tabel, dan menyisipkannya sebagai ganti "@@" dalam perintah

echo mysql -u your_user -D your_database_name -e "DROP TABLE @@"

Jadi jika Anda memiliki sekumpulan tabel bernama "Whatever_1", "Whatever_2", "Whatever_3", perintah yang dihasilkan adalah:

echo mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_1"
echo mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_2"
echo mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_3"

Yang akan menampilkan yang berikut:

mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_1"
mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_2"
mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_3"

Saya harap itu cukup detail, dan saya tidak hanya memukuli siapa pun dengan terlalu banyak informasi. Semoga berhasil, dan berhati-hatilah saat menggunakan perintah "DROP TABLE"!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. memproses sejumlah besar entri basis data dengan paging melambat seiring waktu

  2. HAPUS semua topik duplikat dengan beberapa syarat

  3. Merekayasa balik definisi kelas deklaratif SQLAlchemy dari database MySQL yang ada?

  4. Cara mencadangkan database MySQL dari baris perintah di Linux

  5. MySQL COUNT BERBEDA