MySQLDump một câu lệnh INSERT cho mỗi hàng dữ liệu


178

với tuyên bố sau:

mysqldump --complete-insert --lock-all-tables --no-create-db 
--no-create-info --extended-insert --password=XXX -u XXX 
--dump-date yyy > yyy_dataOnly.sql

Tôi nhận được các câu lệnh INSERT như sau:

INSERT INTO `table` VALUES (1,'something'),(2,'anything'),(3,'everything');

Những gì tôi cần trong trường hợp của tôi là một cái gì đó như thế này:

INSERT INTO `table` VALUES (1,'something');
INSERT INTO `table` VALUES (2,'anything');
INSERT INTO `table` VALUES (3,'everything');

Có cách nào để nói với "mysqldump" để tạo một câu lệnh INSERT mới cho mỗi hàng không? Cảm ơn bạn đã giúp đỡ!

Câu trả lời:


277

Sử dụng:

mysqldump --extended-insert=FALSE 

Xin lưu ý rằng nhiều lần chèn sẽ chậm hơn một lần chèn lớn.


75
--skip-extend-insert xuất hiện đúng cú pháp đối với tôi (sử dụng phiên bản mysqldump 10.13)
Isaac Betesh

17
Chậm hơn, vâng, nhưng rất nhiều trình soạn thảo văn bản gặp rắc rối với các dòng văn bản quá dài và nếu các bảng có một lượng dữ liệu khổng lồ, đó là điều sẽ xảy ra.
Jahmic

mysqldump --opt --skip-extended-inserthoặc mysqldump --opt --extended-insert=FALSElàm việc
Yzmir Ramirez

CHÚA ƠI! Tôi đã chuyển sang một phiên bản mới gây ra sự cố này và rất nhiều tập lệnh tự động của tôi bị lỗi. Tôi nghĩ rằng tôi đã bị lừa nhưng điều này có vẻ như là một sửa chữa dễ dàng. Cám ơn vì đã chia sẻ!
Varun Verma

11
Điều này là tốt bởi vì bây giờ tôi có thể thực hiện git difftrên hai bãi chứa cơ sở dữ liệu khác nhau và có một bức tranh rõ ràng về những gì đã thay đổi.
Rolf

9

Trong các phiên bản mới hơn, sự thay đổi đã được thực hiện đối với các cờ: từ tài liệu:

--extends-insert, -e

Viết các câu lệnh INSERT bằng cú pháp nhiều hàng bao gồm một số danh sách GIÁ TRỊ. Điều này dẫn đến một tệp kết xuất nhỏ hơn và tăng tốc độ chèn khi tệp được tải lại.

--opt

Tùy chọn này, được bật theo mặc định, là cách viết tắt của sự kết hợp của --add-drop-table --add-lock --create-Options --disable-Keys --extends-insert --lock-frames --quick - bộ ký tự. Nó cung cấp một hoạt động kết xuất nhanh và tạo ra một tệp kết xuất có thể được tải lại vào máy chủ MySQL một cách nhanh chóng.

Vì tùy chọn --opt được bật theo mặc định, bạn chỉ chỉ định nghịch đảo của nó, --skip-opt để tắt một số cài đặt mặc định. Xem thảo luận về các nhóm tùy chọn mysqldump để biết thông tin về việc bật hoặc tắt một cách có chọn lọc một tập hợp con các tùy chọn bị ảnh hưởng bởi --opt.

--skip-Extended-insert

Tắt chèn mở rộng

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.