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

Cơ sở dữ liệu nhập MySQL nhưng bỏ qua bảng cụ thể

Câu trả lời được chấp nhận bởi RandomSeed có thể mất nhiều thời gian! Việc nhập bảng (chỉ để loại bỏ sau này) có thể rất lãng phí tùy thuộc vào kích thước.

Đối với tệp được tạo bằng

mysqldump -u user -ppasswd --opt --routines DBname > DBdump.sql

Tôi hiện nhận được một tệp có dung lượng khoảng 7GB, 6GB trong số đó là dữ liệu cho một bảng nhật ký mà tôi không 'cần' phải có ở đó; Việc tải lại tệp này mất vài giờ. Nếu tôi cần tải lại (cho mục đích phát triển hoặc nếu cần thiết để khôi phục trực tiếp), tôi sẽ đọc lướt tệp do đó:

sed '/INSERT INTO `TABLE_TO_SKIP`/d' DBdump.sql > reduced.sql

Và tải lại bằng:

mysql -u user -ppasswd DBname < reduced.sql

Điều này mang lại cho tôi một cơ sở dữ liệu hoàn chỉnh, với bảng "không mong muốn" được tạo nhưng trống. Nếu bạn thực sự không muốn các bảng, chỉ cần bỏ các bảng trống sau khi quá trình tải kết thúc.

Đối với nhiều bảng, bạn có thể làm như sau:

sed '/INSERT INTO `TABLE1_TO_SKIP`/d' DBdump.sql | \
sed '/INSERT INTO `TABLE2_TO_SKIP`/d' | \
sed '/INSERT INTO `TABLE3_TO_SKIP`/d' > reduced.sql

CÓ 'gotcha' - hãy coi chừng các thủ tục trong kết xuất của bạn có thể chứa "INSERT INTO TABLE_TO_SKIP".



  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 DELETE FROM với truy vấn con là điều kiện

  2. Cột không xác định trong danh sách trường

  3. Đếm số lần xuất hiện của một chuỗi trong trường VARCHAR?

  4. MySql không thể cập nhật hàng mẹ khi tôi BẬT CẬP NHẬT CASCADE

  5. Sử dụng 'OR' giữa mệnh đề HAVING và WHERE trong MySQL?