เพิ่มขนาดคอลัมน์ VARCHAR/CHAR โดยไม่สูญเสียข้อมูล
ใช้ ALTER TABLE ... CHANGE หรือ MODIFY ระบุ Data Type ใหม่ที่มีขนาดใหญ่กว่าเดิม
รูปแบบคำสั่ง (Syntax)
ALTER TABLE yourTableName
CHANGE column_name column_name NEW_DATA_TYPE;
-- หรือ
ALTER TABLE yourTableName
MODIFY column_name NEW_DATA_TYPE;
ตัวอย่างการใช้งาน
สร้างตาราง DataTruncated คอลัมน์ Name ขนาด 5:
CREATE TABLE DataTruncated (
id INT,
Name VARCHAR(5)
);
ลอง Insert ข้อมูลยาวเกิน 5 ตัวอักษร → Error:
INSERT INTO DataTruncated VALUES (101, 'JohnSmith');
-- ERROR 1406 (22001): Data too long for column 'Name' at row 1
เพิ่มขนาดเป็น VARCHAR(200):
ALTER TABLE DataTruncated
CHANGE Name Name VARCHAR(200);
Insert อีกครั้ง → สำเร็จ:
INSERT INTO DataTruncated VALUES (101, 'JohnSmith');
SELECT * FROM DataTruncated;
ผลลัพธ์:
| id | Name |
|---|---|
| 101 | JohnSmith |
ข้อควรระวัง
- เพิ่มขนาดได้ (VARCHAR(5) → VARCHAR(200)) ✓
- ลดขนาดได้ก็ต่อเมื่อข้อมูลที่มีอยู่พอดี (VARCHAR(200) → VARCHAR(5) ถ้าข้อมูลยาว > 5 จะ Error) ✗
- การเปลี่ยน Data Type (VARCHAR → TEXT, INT → BIGINT) ต้องระวังการแปลงค่า
- ตารางใหญ่ อาจใช้เวลานานและ Lock ตาราง (พิจารณา pt-online-schema-change)