MySQLDump หนึ่งคำสั่ง INSERT สำหรับแต่ละแถวข้อมูล


179

ด้วยคำสั่งต่อไปนี้:

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

ฉันได้รับข้อความ INSERT ดังนี้:

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

สิ่งที่ฉันต้องการในกรณีของฉันคืออะไรเช่นนี้:

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

มีวิธีบอก "mysqldump" เพื่อสร้างคำสั่ง INSERT ใหม่สำหรับแต่ละแถวหรือไม่? ขอบคุณสำหรับความช่วยเหลือของคุณ!

คำตอบ:


279

ใช้:

mysqldump --extended-insert=FALSE 

ระวังว่าเม็ดมีดหลายเม็ดจะช้ากว่าเม็ดมีดก้อนใหญ่หนึ่งเม็ด


75
--skip-extended-insert ดูเหมือนจะเป็นไวยากรณ์ที่ถูกต้องสำหรับฉัน (โดยใช้ mysqldump เวอร์ชัน 10.13)
Isaac Betesh

17
ช้าลงใช่ แต่ตัวแก้ไขข้อความจำนวนมากมีปัญหากับข้อความที่ยาวมากและหากตารางมีข้อมูลจำนวนมากนั่นคือสิ่งที่จะเกิดขึ้น
Jahmic

mysqldump --opt --skip-extended-insertหรือที่mysqldump --opt --extended-insert=FALSEทำงาน
Yzmir Ramirez

พระเจ้าช่วย! ฉันย้ายไปใช้เวอร์ชันใหม่ซึ่งทำให้เกิดปัญหานี้และสคริปต์อัตโนมัติของฉันล้มเหลวจำนวนมาก ฉันคิดว่าตัวเองเมา แต่สิ่งนี้ดูเหมือนจะง่าย ขอบคุณสำหรับการแบ่งปัน!
Varun Verma

11
นี่เป็นสิ่งที่ดีเพราะตอนนี้ฉันสามารถทำgit diffฐานข้อมูลที่แตกต่างกันสองฐานและมีภาพที่ชัดเจนของสิ่งที่เปลี่ยนแปลงไป
Rolf

9

ในรุ่นที่ใหม่กว่ามีการเปลี่ยนแปลงการตั้งค่าสถานะ: จากเอกสารประกอบ:

- เพิ่มแทรก, -e

เขียนคำสั่ง INSERT โดยใช้ไวยากรณ์หลายแถวที่มีรายการ VALUES หลายรายการ สิ่งนี้ส่งผลให้ไฟล์ดัมพ์เล็กลงและเพิ่มความเร็วในการแทรกเมื่อไฟล์ถูกรีโหลด

--เลือก

ตัวเลือกนี้เปิดใช้งานโดยค่าเริ่มต้นเป็นชวเลขสำหรับการรวมกันของ - เพิ่ม - ลดลงตาราง - เพิ่มล็อค - สร้างตัวเลือก - ปิดการใช้งานคีย์ - ที่เพิ่มแทรก - ล็อคตาราง - ด่วน - ตั้ง charset มันให้การถ่ายโอนข้อมูลที่รวดเร็วและสร้างไฟล์ดัมพ์ที่สามารถโหลดซ้ำลงในเซิร์ฟเวอร์ MySQL ได้อย่างรวดเร็ว

เนื่องจากตัวเลือก --opt ถูกเปิดใช้งานตามค่าเริ่มต้นคุณจะต้องระบุการสนทนา --skip-opt เพื่อปิดการตั้งค่าเริ่มต้นหลายรายการ ดูการอภิปรายของกลุ่มตัวเลือก mysqldump สำหรับข้อมูลเกี่ยวกับการเลือกเปิดใช้งานหรือปิดการใช้งานชุดย่อยของตัวเลือกที่ได้รับผลกระทบจาก --opt

--skip ขยายแทรก

ปิดการแทรกแบบขยาย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.