Too many columns เมื่อใข้ enum

Too many columns เมื่อใข้ enum

จากบทความ แนะนำใช้ enum ตอนนี้ผมก็ใช้จริงแล้วก็เจอ bug ในงานจริงๆแล้วครับ

แต่อย่าพึ่งกลัว ไม่ใช่เรื่องใหญ่อะไร ซึ่งมันเป็น bug ที่ตัว MySQL เองเลย นั่นก็คือ เราไม่สามารถสร้าง enum ได้ถึง 65,535 ค่านั่นเอง คือผมทดสอบด้วยการเอา รายชื่อตำบลทั้งหมดของไทยเข้าไปที่ database โดยใส่แบบ enum พบว่า mysql report error ออกมาว่า Too many columns พร้อมทั้งสร้าง table ไม่ได้

จากการตรวจสอบ พบว่าทาง MySQLเองรับทราบปัญหาแล้ว และเป็นในหลายๆ version ของ MySQL ด้วยครับ (5.X) ซึ่งก็จะได้แก้ไขกันต่อไปนั่นเอง และยังพบเพิ่มเติมว่า มันจะเริ่มทำงานไม่ได้เมื่อมีค่าเข้าใกล้ 1หมื่นค่า หรือมากกว่านั้น อย่างของผมเองประมาณ 9860 ค่าได้ ก็ใช้ไม่ได้แล้ว

แต่อย่างที่บอกว่าไม่ต้องตกใจ เพราะว่าการที่เราใช้ไม่ได้นี้ เป็นตั้งแต่ตอนที่สร้าง table เลย ดังนั้นไม่กระทบอะไรงานส่วนหน้าเว็บแน่นอน (ก็เรายังสร้างไม่ได้ แล้วจะไปรันงานได้อย่างไร)

อย่างไรก็ดี ในกรณีที่มีความหลากหลายมากๆแบบนี้ ก็อาจจะกลับไปใช้งาน varchar เหมือนเดิมก็ได้ครับ เปลืองพื้นที่หน่อยแต่ก็ทำงาน ตามข้อจำกัดที่มีอยู่

แต่ว่าปัญหาที่นอกเหนือจากนี้ยังไม่มีนะครับ

หรือใครมีอะไรแจ่มๆ แนะนำกันก็ได้ครับ

Create: Modify : 2010-08-19 11:55:09 Read : 3350 URL :