สาเหตุของข้อผิดพลาด
ข้อผิดพลาด "Data too long for column" เกิดขึ้นเมื่อพยายาม insert ข้อมูลที่มีขนาดใหญ่กว่าที่คอลัมน์รองรับได้
ตัวอย่างสถานการณ์
ถ้าคอลัมน์ถูกกำหนดเป็น VARCHAR(6) จะเก็บได้แค่ 6 ตัวอักษร หากใส่ข้อมูลมากกว่านั้น จะเกิด error
ตัวอย่างสร้างตารางและทดสอบ
mysql> CREATE TABLE DataToolongDemo (
-> Name VARCHAR(10)
-> );
Query OK, 0 rows affected (0.55 sec)
พยายาม insert ข้อมูลเกิน 10 ตัวอักษร
mysql> INSERT INTO DataToolongDemo VALUES('Carol Taylor');
ERROR 1406 (22001): Data too long for column 'Name' at row 1
วิธีแก้ไข: เปลี่ยน Data Type เป็น LONGTEXT
mysql> ALTER TABLE DataToolongDemo CHANGE Name Name LONGTEXT; Query OK, 0 rows affected (2.22 sec)
ทดสอบ insert อีกครั้ง
mysql> INSERT INTO DataToolongDemo VALUES('Carol Taylor');
Query OK, 1 row affected (0.11 sec)
mysql> SELECT * FROM DataToolongDemo;
+--------------+ | Name | +--------------+ | Carol Taylor | +--------------+ 1 row in set (0.00 sec)
ตัวเลือก Data Type สำหรับข้อความยาว:
TEXT- สูงสุด 65,535 ตัวอักษรMEDIUMTEXT- สูงสุด 16,777,215 ตัวอักษรLONGTEXT- สูงสุด 4,294,967,295 ตัวอักษร
คำแนะนำ: เลือก data type ให้เหมาะสมกับขนาดข้อมูลที่คาดว่าจะเก็บ เพื่อประสิทธิภาพที่ดีที่สุด