2012-02-20 25 views
8

Làm thế nào tôi có thể đổ từng bảng mysql riêng biệt với mysqldump?Mysqldumper: Dumping mỗi bảng riêng biệt

Bối cảnh: Tôi muốn theo dõi những bãi với git và sử dụng pre-cam kết nối

Ví dụ: Tôi có một schema với 10 bàn (table1 - table10). bây giờ tôi muốn có một tập tin cho mỗi bảng: table1.sql table2.sql ...

Vậy làm thế nào sẽ làm việc này?

Snd tại sao stackoverflow không thích câu hỏi của tôi?

+0

Ý anh là gì với 'Snd tại sao Stackoverflow không thích câu hỏi của tôi ' –

+3

http: // stackoverflow.com/questions/3669121/dump-all-mysql-tables-into-separate-files-automagically/6300583 – kenorb

Trả lời

1
mysqldump -t -u [username] -p test mytable 

sẽ đổ bảng 'mytable' từ cơ sở dữ liệu 'kiểm tra'.

Nếu bạn muốn tự động hóa quy trình, bạn sẽ cần phải viết kịch bản, chọn bảng_names từ giản đồ cho bạn và áp dụng thao tác trên cho mỗi bảng. Bạn có thể tự động hóa các hoạt động git.

+0

và làm cách nào tôi có thể tự động hóa quy trình? sry, tôi mới ... –

+1

Phụ thuộc vào hệ điều hành của bạn. Nếu bạn đang sử dụng Linux - bash scripting có lẽ. – hovanessyan

30

này nên làm việc trong một vỏ:

for x in `mysql --skip-column-names -u [username] -p[password] [dbname] -e 'show tables;'`; do 
    mysqldump -u [username] -p[password] [db name] $x > "$x.sql" 
done 
+1

Thực ra câu trả lời của Naveen Kumar tốt hơn tôi. –

+5

Không, câu trả lời của bạn tốt hơn :) thanx – tasmaniski

5

hy vọng điều này giúp

mysqldump --user=dbuser --password --tab=~/output/dir dbname 

bạn sẽ có một tập tin tablename.sql chứa đồ của mỗi bảng (tạo bảng báo cáo) và tập tin tablename.txt chứa dữ liệu.

mysqldump --user=dbuser --password --no-data --tab=~/output/dir dbname 

nếu bạn muốn có một bãi rác với schema chỉ, thêm lá cờ --no-data:

+5

Có vẻ như tôi đã sao chép câu trả lời của bạn 100% từ http://stackoverflow.com/a/6300583/616443 – j08691

+0

Điều đó làm việc cho tôi trong OSX, Có cách nào để nhập đổ? –

Các vấn đề liên quan