Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Bỏ qua các bảng trong mysqldump dựa trên một mẫu

Rất tiếc, mysqldump yêu cầu tên bảng phải đủ điều kiện nên bạn không thể chỉ định một tham số làm mẫu regex.

Tuy nhiên, bạn có thể sử dụng một tập lệnh để tạo mysqldump của mình bằng cách để nó kết nối với information_schema và liệt kê tất cả các bảng bằng cách sử dụng một cái gì đó như:

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

Và sau đó, nó sẽ tạo --ignore-table tham số cho tất cả các tên bảng khớp với regex của ^test .

Để chỉ kết xuất lược đồ và không có dữ liệu nào, bạn có thể sử dụng --no-data=true như một tham số.

Nếu bạn muốn nhận được mọi thứ cho tất cả các bảng không thử nghiệm mà chỉ có lược đồ cho một bảng khác thì bạn sẽ cần sử dụng hai lệnh mysqldump riêng biệt (một lệnh cho bảng bỏ qua cho tất cả các bảng kiểm tra cộng với lược đồ chỉ một và một lệnh khác chỉ dành cho lược đồ của bảng chỉ lược đồ) với lược đồ thứ hai thêm vào tệp đầu ra bằng cách sử dụng >> chắp thêm toán tử .

Vì vậy, tập lệnh kết quả của bạn có thể tạo ra một cái gì đó như:

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. mysql Lưu trữ Thủ tục, Truy vấn để kiểm tra xem có tồn tại hay không

  2. Tại sao trình kết nối mysql bị hỏng (Mất kết nối với máy chủ MySQL trong lỗi truy vấn)

  3. php mysql hôm nay, hôm qua và ngày từ cơ sở dữ liệu

  4. Truy vấn sử dụng group_concat chỉ trả về một hàng

  5. Lỗi nghiêm trọng:Không thể khai báo lại session_start () trong dòng 25 functions.php