SORU
11 Mart 2011, Cuma


Belirli bir önek ile sadece tabloları Mysqldump joker / Mysqldump?

Temizlik ben bu büyük, karmaşık bir veritabanı var. Tek DB Cyd ile Profesyonel Kurumsal birleştirilmesi sonucu 500 tablolar, ev sahipliği yapmaktadır.

Kötü şeyler yapmak için, kullanılmakta olan 70 Cyd tabloları bir dizi var. Bu bak_ ile öneki.

Sadece bak_ bu tabloları silmek kolay olacak, ama ben istiyorum 'bir bak' onları ilk (orada ne yaptığını görüyor musun?). Aklımda böyle bir komut hayal edebiliyorum:

mysqldump -u username -p mydatabase bak_*

Ama bu işe yaramıyor. Bunu yapmanın en iyi yolu ne olurdu? Teşekkürler!

EDİT: Evet, açıkça 70 tablolar listesi edebilirim, ya ~430 tablolar hariç, ama daha iyi bir yol için mümkünse bunu yapmak için arıyorum.

CEVAP
11 Mart 2011, Cuma


Komut satırı birbiri ardına, ama joker olmadan tablo adları belirtebilirsiniz. mysqldump databasename table1 table2 table3

Ayrıca eğer daha kısa olsaydı --ignore-table kullanabilirsiniz.

Başka bir fikir gibi bir şey ile bir dosya içine tabloları elde etmektir

mysql -N information_schema -e "select table_name from tables where table_schema = 'databasename' and table_name like 'bak_%'" > tables.txt 

Dosyayı düzenlemek ve bir satır tüm veritabanları. O zaman yapın

mysqldump dbname `cat tables.txt` > dump_file.sql

Bir satırda tabloları (önerilmez) bırakmak için aşağıdakileri yapabilirsiniz

mysql -NB  information_schema -e "select table_name from tables where table_name like 'bak_%'" | xargs -I"{}" mysql dbname -e "DROP TABLE {}"

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Distractify

    Distractify

    1 Aralık 2011
  • MysteryGuitarMan

    MysteryGuita

    16 HAZİRAN 2006
  • NCIX Tech Tips

    NCIX Tech Ti

    2 Ocak 2007