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