ไฟล์ CSV และ Excel คือวิธีที่ทุกทีมแลกเปลี่ยนข้อมูล เช่น ราคาจากซัพพลายเออร์ ไฟล์ส่งออกจากพาร์ตเนอร์ หรือรายชื่อที่ใครสักคนเคลียร์ด้วยมือ การโหลดเข้าฐานข้อมูลดูเหมือนงานห้านาที จึงพลาดบ่อย การนำเข้าที่ผิดสร้างข้อมูลเสียที่หายากและแก้ยากกว่า ใช้รายการนี้ตรวจก่อนกดนำเข้า
1. Encoding
ข้อความภาษาไทยต้องบันทึกเป็น UTF-8 ถ้า CSV ส่งออกจากเครื่องมือรุ่นเก่าที่ใช้ encoding เดิม ตัวอักษรจะกลายเป็นเครื่องหมายคำถามหรือตัวมั่วหลังนำเข้า และกู้คืนจากฐานข้อมูลไม่ได้ ต้องนำเข้าใหม่ เปิดไฟล์ด้วยโปรแกรมแก้ข้อความก่อนและดูแถวภาษาไทยสองสามแถว ตัวเลือก "CSV UTF-8" ของ Excel ปลอดภัยที่สุด
2. วันที่
ตกลงรูปแบบวันที่เดียวก่อนเริ่ม 03/04/2026 เป็นวันที่ 3 เมษายนในบางประเทศ และวันที่ 4 มีนาคมในบางประเทศ ถ้าต้นทางเป็นข้อมูลไทย ให้ตรวจว่าเป็นปี พ.ศ. (2569) หรือ ค.ศ. (2026) คอลัมน์ที่ปนกันพบบ่อยหลังมีการแก้ไขด้วยมือ รูปแบบ ISO (2026-04-03) ลดความสับสนได้เกือบทั้งหมด
3. ชนิดข้อมูลและเลขศูนย์นำหน้า
สเปรดชีตชอบแปลงทุกอย่างเป็นตัวเลข รหัสไปรษณีย์ 01000 กลายเป็น 1000 เบอร์โทรเสียเลขศูนย์นำหน้า รหัสยาว ๆ กลายเป็นเลขวิทยาศาสตร์ (1.23E+15) ตั้งคอลัมน์เหล่านี้เป็นข้อความก่อนบันทึก และจับคู่กับคอลัมน์ข้อความในฐานข้อมูล
4. คีย์ซ้ำและคีย์ว่าง
ก่อนนำเข้าตารางที่มี primary key หรือ unique index ให้ตรวจว่าไฟล์มีคีย์ซ้ำหรือแถวที่คีย์ว่างหรือไม่ และตัดสินใจว่าเมื่อคีย์มีอยู่แล้วในตารางจะทำอย่างไร ข้าม แทนที่ หรือหยุด การนำเข้าโดยไม่มีแผนสำหรับคีย์ชนกันคือสาเหตุที่ข้อมูลเดิมถูกไฟล์เก่าทับ
-- หลังนำเข้าตาราง staging ให้หาคีย์ซ้ำ
SELECT sku, COUNT(*) AS n
FROM import_products
GROUP BY sku
HAVING COUNT(*) > 1;5. นำเข้าตารางใหม่ก่อนเสมอ
โหลดไฟล์ลงตารางพักแยกต่างหาก ตรวจ แล้วค่อยเพิ่มหรือรวมเข้าตารางจริง ทำให้มีที่รันการตรวจข้างต้น และย้อนกลับได้ง่าย ๆ ด้วยการลบตารางพัก ใช้เวลาเพิ่มหนึ่งนาที แต่ป้องกันปัญหาการนำเข้าได้เกือบทั้งหมด
ตรวจหลังนำเข้า
- จำนวนแถวในตารางเท่ากับในไฟล์ (ไม่นับหัวตาราง)
- ผลรวมของคอลัมน์ตัวเลขตรงกันระหว่างไฟล์กับตาราง
- สุ่มห้าแถวแล้วเหมือนต้นฉบับ รวมถึงข้อความไทยและวันที่
- จำนวนค่าว่างต่อคอลัมน์เป็นไปตามที่คาด
ใน Ruamhub
Ruamhub นำเข้าไฟล์ CSV และ Excel เป็นตาราง พร้อมตัวอย่างให้ดูก่อนยืนยัน เพื่อจับปัญหา encoding และคอลัมน์ได้ตั้งแต่ต้น การนำเข้าถูกบันทึกใน audit log พร้อมผู้ที่รัน