- 1 1. บทนำ
- 2 2. แนวคิดพื้นฐานและกรณีการใช้งานของการคัดลอกตาราง
- 3 3. วิธีคัดลอกเฉพาะโครงสร้างของตาราง
- 4 4. วิธีคัดลอกทั้งโครงสร้างและข้อมูลของตาราง
- 5 5. วิธีทำการคัดลอกเต็มรูปแบบรวมถึงดัชนีและข้อจำกัด
- 6 6. การคัดลอกตารางระหว่างฐานข้อมูลต่าง ๆ
- 7 7. การคัดลอกตารางโดยใช้ phpMyAdmin
- 8 8. ข้อควรพิจารณาที่สำคัญและแนวปฏิบัติที่ดีที่สุดเมื่อคัดลอกตาราง
- 9 9. สรุป
1. บทนำ
การคัดลอกตารางใน MySQL เป็นหนึ่งในกระบวนการที่ใช้บ่อยที่สุดในการจัดการฐานข้อมูล โดยการทำสำเนาตารางที่มีอยู่แล้ว คุณสามารถสร้างการสำรองข้อมูลหรือสร้างสภาพแวดล้อมทดสอบได้อย่างง่ายดาย ในบทความนี้ เราจะอธิบายวิธีต่าง ๆ สำหรับการคัดลอกตารางใน MySQL รวมถึงขั้นตอนทีละขั้นตอน ข้อดี และข้อควรพิจารณาที่สำคัญ
2. แนวคิดพื้นฐานและกรณีการใช้งานของการคัดลอกตาราง
มีสามวิธีหลักสำหรับการคัดลอกตาราง: “คัดลอกโครงสร้างเท่านั้น”, “คัดลอกโครงสร้างและข้อมูล”, และ “คัดลอกเต็มรูปแบบรวมถึงดัชนีและข้อจำกัด” เลือกวิธีที่เหมาะสมที่สุดตามกรณีการใช้งานของคุณ
กรณีการใช้งานหลักสำหรับการคัดลอกตาราง
- การสำรองข้อมูล : การสำรองตารางเป็นประจำช่วยให้มั่นใจว่าข้อมูลได้รับการปกป้อง
- การสร้างสภาพแวดล้อมทดสอบ : มีประโยชน์เมื่อคุณต้องการข้อมูลสำเนาเพื่อทดสอบฟีเจอร์หรือชุดข้อมูลใหม่
- การย้ายระบบและการปรับประสิทธิภาพ : มักใช้เมื่อเตรียมการเปลี่ยนแปลงโครงสร้างระหว่างการย้ายระบบ
3. วิธีคัดลอกเฉพาะโครงสร้างของตาราง
หากคุณต้องการคัดลอกเฉพาะโครงสร้างของตาราง คำสั่ง CREATE TABLE ... LIKE จะสะดวก วิธีนี้ทำสำเนา schema ของตาราง (การกำหนดคอลัมน์และประเภทข้อมูล) แต่ไม่รวมข้อมูล
การใช้ CREATE TABLE … LIKE
- ไวยากรณ์พื้นฐาน
CREATE TABLE new_table_name LIKE original_table_name;
- ตัวอย่าง ตัวอย่างเช่น หากต้องการทำสำเนาเฉพาะโครงสร้างของตาราง
employeesและสร้างตารางใหม่ชื่อemployees_backupให้ใช้คำสั่ง SQL ต่อไปนี้:CREATE TABLE employees_backup LIKE employees;
- ข้อดี วิธีนี้ง่ายมากและทำให้คุณคัดลอกการกำหนดคอลัมน์ของตารางได้ตามเดิม ดัชนีและข้อจำกัดก็จะถูกคัดลอกด้วย ทำให้เหมาะสมเมื่อคุณต้องการทำซ้ำโครงสร้างพื้นฐานของตาราง
- หมายเหตุสำคัญ ข้อมูลจะไม่ถูกคัดลอก นอกจากนี้ หากมีข้อจำกัด foreign key ที่กำหนดเองอยู่ การพึ่งพาตารางอื่นจะไม่ถูกปรับค่าอัตโนมัติ
4. วิธีคัดลอกทั้งโครงสร้างและข้อมูลของตาราง
หากคุณต้องการคัดลอกไม่เพียงโครงสร้างของตารางแต่รวมถึงข้อมูลด้วย ให้ใช้คำสั่ง CREATE TABLE ... AS SELECT วิธีนี้เหมาะเมื่อทำสำเนาตารางพร้อมข้อมูล
การใช้ CREATE TABLE … AS SELECT
- ไวยากรณ์พื้นฐาน
CREATE TABLE new_table_name AS SELECT * FROM original_table_name;
- ตัวอย่าง ตัวอย่างเช่น หากต้องการคัดลอกทั้งโครงสร้างและข้อมูลของตาราง
employeesไปยังตารางใหม่ชื่อemployees_full_backupให้ใช้คำสั่ง SQL ต่อไปนี้:CREATE TABLE employees_full_backup AS SELECT * FROM employees;
- ข้อดี เนื่องจากโครงสร้างและข้อมูลถูกคัดลอกพร้อมกัน วิธีนี้เหมาะสำหรับการสร้างการสำรองข้อมูลตารางเต็มรูปแบบอย่างรวดเร็ว
- หมายเหตุสำคัญ ดัชนีและข้อจำกัด foreign key จะไม่ถูกคัดลอกด้วยวิธีนี้ หากต้องการ คุณต้องสร้างดัชนีและข้อจำกัดเหล่านั้นใหม่ด้วยตนเองหลังจากคัดลอกข้อมูลเสร็จ
5. วิธีทำการคัดลอกเต็มรูปแบบรวมถึงดัชนีและข้อจำกัด
หากคุณต้องการทำสำเนาตารางอย่างสมบูรณ์รวมถึงดัชนีและข้อจำกัด ให้รวมคำสั่ง CREATE TABLE ... LIKE กับคำสั่ง INSERT INTO ... SELECT เข้าด้วยกัน
การรวม CREATE TABLE … LIKE และ INSERT INTO … SELECT
- ขั้นตอน
- คัดลอกโครงสร้างด้วย
CREATE TABLE ... LIKE. - แทรกข้อมูลด้วย
INSERT INTO ... SELECT.
- ตัวอย่าง
CREATE TABLE employees_full_copy LIKE employees; INSERT INTO employees_full_copy SELECT * FROM employees;
- ข้อดี วิธีนี้สร้างสำเนาเต็มรูปแบบพร้อมคงดัชนีและข้อจำกัดไว้ ทำให้เหมาะสำหรับการสำรองฐานข้อมูลหรือการทำสำเนา
- หมายเหตุสำคัญ หากตารางมีข้อมูลจำนวนมาก การดำเนินการ INSERT อาจใช้เวลานาน นอกจากนี้ การมีดัชนีหรือ foreign key จำนวนมากอาจทำให้โหลดเซิร์ฟเวอร์เพิ่มขึ้นชั่วคราว

6. การคัดลอกตารางระหว่างฐานข้อมูลต่าง ๆ
When copying a table to another database, specify the database name to distinguish between the source and destination tables.
วิธีคัดลอกระหว่างฐานข้อมูลต่างกัน
- ไวยากรณ์พื้นฐาน
CREATE TABLE new_database.new_table AS SELECT * FROM source_database.original_table;
- ตัวอย่าง นี่คือตัวอย่างการคัดลอกตาราง
employeesจากฐานข้อมูลtest_dbไปยังฐานข้อมูลbackup_db.CREATE TABLE backup_db.employees_copy AS SELECT * FROM test_db.employees;
- หมายเหตุสำคัญ เมื่อคัดลอกตารางระหว่างฐานข้อมูลต่างกัน คุณอาจต้องมีสิทธิ์ผู้ใช้ที่เหมาะสมและการตั้งค่าการเชื่อมต่อฐานข้อมูลที่ถูกต้อง.
7. การคัดลอกตารางโดยใช้ phpMyAdmin
การใช้ phpMyAdmin ช่วยให้คุณคัดลอกตารางได้อย่างง่ายดายผ่านอินเทอร์เฟซกราฟิก (GUI) วิธีนี้แนะนำสำหรับผู้ใช้ที่ไม่สะดวกในการเขียนคำสั่ง SQL.
ขั้นตอนใน phpMyAdmin
- เข้าสู่ระบบ phpMyAdmin และเลือกตารางที่คุณต้องการคัดลอก.
- ไปที่แท็บ “Operations” และเลือก “Copy table to (database.table)”.
- เลือก “Structure only” หรือ “Structure and data”, ระบุชื่อตารางใหม่ แล้วดำเนินการ.
ข้อดี
GUI ทำให้การดำเนินการง่ายขึ้นและไม่ต้องเขียนคำสั่ง SQL ทำให้ผู้เริ่มต้นก็สามารถใช้งานได้.
หมายเหตุสำคัญ
อาจมีข้อความยืนยันปรากฏขึ้นระหว่างกระบวนการใน phpMyAdmin ระมัดระวังโดยเฉพาะเมื่อเปลี่ยนแปลงสิทธิ์.
8. ข้อควรพิจารณาที่สำคัญและแนวปฏิบัติที่ดีที่สุดเมื่อคัดลอกตาราง
เมื่อคัดลอกตาราง ควรพิจารณาความสอดคล้องของข้อมูลและประสิทธิภาพ ใช้ transaction หากจำเป็นเพื่อให้การดำเนินการปลอดภัย.
ปัจจัยสำคัญที่ควรพิจารณาในระหว่างการคัดลอก
- ความสอดคล้องของข้อมูล ในสภาพแวดล้อมที่ข้อมูลอัปเดตบ่อย ควรล็อกตารางก่อนคัดลอกหรือใช้ transaction เพื่อรักษาความสอดคล้อง.
- ประสิทธิภาพ การคัดลอกตารางขนาดใหญ่อาจทำให้เซิร์ฟเวอร์โหลดสูง ควรหลีกเลี่ยงช่วงเวลาที่มีการใช้งานสูงหรือพิจารณาใช้เครื่องมือสำรองข้อมูลเฉพาะ.
- ตรวจสอบการสำรองข้อมูล เพื่อป้องกันการสูญหายหรือข้อผิดพลาด แนะนำให้สร้างสำรองข้อมูลก่อนทำการคัดลอก.
9. สรุป
มีหลายวิธีในการคัดลอกตารางใน MySQL ไม่ว่าคุณจะต้องการคัดลอกเฉพาะโครงสร้าง, รวมข้อมูล, หรือทำการคัดลอกเต็มรูปแบบรวมดัชนีและข้อจำกัด ให้เลือกวิธีที่เหมาะกับวัตถุประสงค์ของคุณ ใช้คู่มือนี้เป็นอ้างอิงเพื่อจัดการข้อมูลของคุณอย่างมีประสิทธิภาพ.


