Mysql
 sql >> база данни >  >> RDS >> Mysql

Пропускайте таблици в mysqldump въз основа на шаблон

За съжаление mysqldump изисква имената на таблици да са напълно квалифицирани, така че не можете да посочите параметър като шаблон на регулярни изрази.

Можете обаче да използвате скрипт за генериране на вашия mysqldump, като го накарате да се свърже с information_schema и да изброи всички таблици, използвайки нещо като:

SELECT TABLE_NAME, TABLE_SCHEMA
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA NOT IN ('INFORMATION_SCHEMA', 'mysql', 'PERFORMANCE_SCHEMA');

И след това да го накара да генерира --ignore-table параметри за всички имена на таблици, които съответстват на регулярния израз на ^test .

За да изхвърлите само схемата и никакви данни, можете да използвате --no-data=true като параметър.

Ако искате да получите всичко за всички не тестови таблици, но само схемата за друга таблица, тогава ще трябва да използвате две отделни команди mysqldump (една за таблицата за игнориране за всички тестови таблици плюс схемата само за една и друга само за схемата на таблицата само със схемата) като втората се добавя към изходния файл с помощта на >> добавете оператор .

Така полученият ви скрипт може да генерира нещо като:

mysqldump -u root -ptoor databaseName --ignore-table=testTable1 --ignore-table=testTable2 --ignore-table=testTable3  --ignore-table=schemaOnlyTable > mysqldump.sql

mysqldump -u root -ptoor databaseName schemaOnlyTable --no-data=true >> mysqldump.sql



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. единична фиксирана таблица с множество колони срещу гъвкави абстрактни таблици

  2. Как да надстроите от старите пароли MySQL към нова система за пароли

  3. защо тази заявка връща ред с нулеви стойности

  4. Какъв е максималният диапазон на varchar в MySQL?

  5. JPA не се актуализира колоната с клас Converter