7 มิ.ย. 2569
20:03 น.
#Dev Database
เวลาเราเก็บ DATETIME ใน MySQL แล้วตั้งเป็น UTC เพราะ "มันเป็น standard"
แต่ user ใช้เวลาไทย UTC+7 — ทุกอย่างที่ insert เวลา 09:00 น.
กลายเป็น 02:00 UTC ในฐานข้อมูล
จากนั้นเวลาจะ SELECT ออกมาแสดงผล
ต้อง CONVERT_TZ() หรือใช้ PHP...
7 มิ.ย. 2569
14:00 น.
#Dev Database MySQL
ใครที่เคย insert ข้อความที่มี emoji ลง MySQL แล้วเจอ Error "Incorrect string value" ขอยืนยันว่าคุณไม่ได้อยู่คนเดียว 😭
ปัญหาคือ MySQL ก่อน version 5.5.3 ใช้ utf8mb3 รองรับแค่ 3-byte character ทำให้ emoji (4-byte) ลงไม่ได้ ต้องเปลี่ยน charset เป็น...
7 มิ.ย. 2569
09:00 น.
#Dev Database
ทุกคนที่ Dev เคยผ่านจุดนี้มาแล้วใช่ไหม? กำลังจะรัน migration, คิดว่า "เดี๋ยวก็ไม่เป็นไรหรอก แค่เพิ่ม column เอง" — แล้วก็กดรันเลย
ผลลัพธ์? SQL syntax error, คอลัมน์ชน, foreign key ร้องไห้, data loss ไปสองสามแถว แล้วถึงได้นั่งถอนใจ: "กูไม่ backup...
7 มิ.ย. 2569
07:30 น.
#Dev Database
เวลาไปเจอระบบเก่าที่ปิด MySQL strict mode ไว้
ตอนแรกก็ไม่คิดอะไร จนเจอวันที่ต้องย้าย Data ไป server ใหม่ที่เปิด strict mode ไว้...
เจอ `0000-00-00` ใน DATE field
เจอ empty string `''` ใน INT column
เจอ NULL ใน column ที่ตั้ง NOT NULL แต่ default...