Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

เปลี่ยนขนาดคอลัมน์ใน MySQL ให้ใหญ่ขึ้นด้วย ALTER TABLE

เพิ่มขนาดคอลัมน์ 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;

ผลลัพธ์:

idName
101JohnSmith

ข้อควรระวัง

  • เพิ่มขนาดได้ (VARCHAR(5) → VARCHAR(200)) ✓
  • ลดขนาดได้ก็ต่อเมื่อข้อมูลที่มีอยู่พอดี (VARCHAR(200) → VARCHAR(5) ถ้าข้อมูลยาว > 5 จะ Error) ✗
  • การเปลี่ยน Data Type (VARCHAR → TEXT, INT → BIGINT) ต้องระวังการแปลงค่า
  • ตารางใหญ่ อาจใช้เวลานานและ Lock ตาราง (พิจารณา pt-online-schema-change)