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

ข้อผิดพลาด MySQL "Data too long for column" คืออะไร และวิธีแก้ไข

สาเหตุของข้อผิดพลาด

ข้อผิดพลาด "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 ให้เหมาะสมกับขนาดข้อมูลที่คาดว่าจะเก็บ เพื่อประสิทธิภาพที่ดีที่สุด