Friday, July 1, 2011

MySQL: ย้าย Table ไป Database อื่น ใน Server เดียวกัน

ใช้คำสั่ง rename

สมมุติว่าจะย้ายตารางชื่อ tbl_name จาก database ชื่อ current_db ไปยัง other_db

RENAME TABLE current_db.tbl_name TO other_db.tbl_name;

บรรทัดเดียวเสร็จ ไม่ว่าจะเข้าทาง command line หรือใช้ phpMyAdmin

หรือถ้าคุณไม่อยากย้าย แต่อยากจะ copy คือจะสร้าง table ใหม่ให้เหมือน table เดิมเป็น และ table เดิมยังอยู่ ก็ใช้

CREATE TABLE MyNewTable SELECT * FROM MyOldTable;

ก็จะได้ table ใหม่ชื่อ MyNewTable ที่มีโครงสร้างและข้อมูลเหมือน MyOldTable เป๊ะ ถ้าจะ copy table ข้าม database ด้วย ก็ใส่ชื่อ database. ข้างหน้าชื่อ table

ข้อควรระวัง วิธีนี้พวก Index หรือ Primary Key และพวก Auto_Increment ที่ตั้งไว้ใน table ต้นทางจะไม่ตามไปด้วย เราต้องทำเพิ่มใน table ปลายทางเอง ทางที่ดีควรจะสร้างสคริปต์ Create Table ไปสร้างใน database ใหม่ แล้วค่อยใช้คำสั่งย้ายข้อมูลคือ

INSERT INTO NewDB.NewTable SELECT * FROM OldDB.OldTable