MySQL: utilizar wildcards para exportar tablas con mysqldump

Hoy tenía la necesidad de utilizar comodines o wildcards en una ejecución de MySQLdump. La finalidad, exportar únicamente tablas con un determinado patrón en el nombre. Mysqldump no ofrece esta funcionalidad, así que es necesario realizar la exportación en dos pasos.

El primer paso consiste en extraer con una consulta el listado de tablas con el patrón a exportar en el nombre. El resultado, lo volcamos en un archivo de texto, el cual posteriormente se utilizará para generar el volcado final.

El siguiente ejemplo exporta a un archivo de texto las tablas que comienzan por BAR_ en la base de datos «foo»:

 $ mysql -u root -p -N information_schema -e "select table_name from tables where table_schema = 'foo' and table_name like 'BAR_%'" > /var/tmp/export-tables.txt

Una vez que tenemos el resultado en el fichero de texto, lanzar el dump es sencillo:

$ mysqldump -u root -p foo `cat /var/tmp/export-tables.txt` > /var/tmp/export-foo-tables.sql

El archivo .SQL resultante es el que contendrá el export con las tablas BAR_%.