Mysqldump เพิ่มตารางการลดลง?


10

ฉันสังเกตเห็นใน Codex ว่าตัวเลือก --add-drop-table แสดงขึ้นสำหรับการสำรองฐานข้อมูล ก่อนที่ฉันจะทำอะไรผิดพลาดนี่หมายความว่าเมื่อมีการนำเข้าข้อมูลสำรองในที่สุดตารางจะเขียนทับหากมีอยู่ในปลายทาง db หรือไม่

ฉันไม่ต้องการวางตารางเมื่อสำรองข้อมูล!

user@linux:~/files/blog> mysqldump --add-drop-table -h mysqlhostserver
 -u mysqlusername -p databasename (tablename tablename tablename) | bzip2
 -c > blog.bak.sql.bz2

Enter password: (enter your mysql password)
user@linux~/files/blog>

http://codex.wordpress.org/Backing_Up_Your_Database#Using_Straight_MySQL_Commands

คำตอบ:


10

มันจะมีผลต่อการส่งออกของการถ่ายโอนข้อมูล MySQL ของคุณในไฟล์ที่สร้างขึ้น

มันไม่จำเป็น มันอยู่ตรงนั้นดังนั้นถ้าคุณนำเข้าไฟล์ดัมพ์ที่สร้างขึ้นไปยังฐานข้อมูลที่มีตารางที่มีชื่อเดียวกันอยู่แล้วมันจะดร็อปตารางนั้นแล้วเพิ่มตารางใหม่แทน มิฉะนั้นคุณจะได้รับข้อผิดพลาดและไฟล์ดัมพ์จะไม่ถูกนำเข้า

มันเพิ่มบรรทัดนี้ก่อนที่คำสั่งสร้างตารางในไฟล์การถ่ายโอน:

DROP TABLE IF EXISTS `tablename`;

หากคุณวางแผนที่จะนำเข้าไฟล์การถ่ายโอนข้อมูลไปยังฐานข้อมูลใหม่จะไม่สำคัญ


คุณรู้ว่าสิ่งที่น่าสนใจคือแม้ว่าฉันจะใช้ดัมพ์โดยไม่ใช้ตัวเลือกตารางแบบหล่นลงในฐานข้อมูล WP ที่มีอยู่มันก็ใช้ได้ดีเช่นกัน
AlxVallejo


0

เมื่อลบ --add-drop-table ในรูปแบบนี้ --add-drop-table ถูกใช้อย่างไรก็ตามเนื่องจาก --opt เป็นค่าเริ่มต้น (ยกเว้นว่าคุณใช้ --skip-opt) และ --opt รวม --add-drop -โต๊ะ. ดูที่นี่: https://dev.mysql.com/doc/refman/5.6/en/mysqldump.html#option_mysqldump_opt

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

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