การล้างข้อมูล (truncate) ในฐานข้อมูล MySQL ที่มี FK constraints จะไม่สามารถทำได้โดยตรงนะครับ เพราะข้อมูลมันเชื่อมโยงกันอยู่ การลบข้อมูลนั้นจะทำให้การเชื่อมโยงดังกล่าวเสียหาย แต่เราก็ยังจะลบอ่ะนะ 555 ก็เรากำลังทดสอบอยู่อ่ะ ก็ใช้บ่อยอีกแล้วล่ะโค้ดนี้ เลยบันทุกไว้ซะหน่อย

วิธีที่ 1
1. ลบ constraints ออกก่อนซะเลย
2. ลบข้อมูลที่ต้องการ หรือจะล้างด้วยโค้ดนี้ก็ย่อมได้ TRUNCATE table table_name
3. ไล่ลบข้อมูลที่เชื่อมโยงกับข้อมูลที่ลบออกไปแล้วตะกี้
4. ใส่ constraints กลับเข้าไปเหมือนเดิม ง่ายมะ

วิธีที่ 2 อันนี้แนะนำ
สั่ง query โค้ดนี้ซะเลย

  1. SET FOREIGN_KEY_CHECKS = 0;
  2. TRUNCATE TABLE $table_name;
  3. SET FOREIGN_KEY_CHECKS = 1;