Anda bisa mendapatkan nama tabel yang Anda inginkan dari mysql, dan kemudian menggunakannya untuk membangun parameter dump mysql Anda.
Pada contoh di bawah ini, ganti saja "someprefix" dengan awalan Anda (mis. "Exam_").
The SHOW TABLES
query dapat diubah untuk menemukan set lain dari tabel. Atau Anda bisa menggunakan kueri terhadap INFORMATION_SCHEMA
tabel untuk menggunakan lebih banyak kriteria.
#/bin/bash
#this could be improved but it works
read -p "Mysql username and password" user pass
#specify your database, e.g. "mydb"
DB="mydb"
SQL_STRING='SHOW TABLES LIKE "someprefix%";'
DBS=$(echo $SQL_STRING | mysql -u $user -p$pass -Bs --database=$DB )
#next two lines untested, but intended to add a second excluded table prefix
#ANOTHER_SQL_STRING='SHOW TABLES LIKE "otherprefix%";'
#DBS="$DBS""\n"$(echo $ANOTHER_SQL_STRING | mysql -u $user -p$pass -Bs --database=$DB )
#-B is for batch - tab-separated columns, newlines between rows
#-s is for silent - produce less output
#both result in escaping special characters
#but the following might not work if you have special characters in your table names
IFS=$'\n' read -r -a TABLES <<< $DBS
IGNORE="--ignore_table="$DB"."
IGNORE_TABLES=""
for table in $TABLES; do
IGNORE_TABLES=$IGNORE_TABLES" --ignore_table="$DB"."$table
done
#Now you have a string in $IGNORE_TABLES like this: "--ignore_table=someprefix1 --ignore_table=someprefix2 ..."
mysqldump $DB --routines -u $user -p$pass $IGNORE_TABLES > specialdump.sql
Ini dibangun dengan bantuan dari jawaban ini tentang mendapatkan "semua tabel dengan tidak termasuk dalam bash": https://stackoverflow.com/a/9232076/631764
dan jawaban ini tentang melewatkan tabel dengan beberapa bash yang digunakan: https://stackoverflow.com/a/425172/631764