วิธีล้างข้อมูลจากตาราง MySQL ที่มี FK constraints

วันที่: 7 ก.พ. 2565 22:43 น.

วิธีล้างข้อมูลจากตาราง MySQL ที่มี FK constraints

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

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

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

SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE TABLE $table_name;
SET FOREIGN_KEY_CHECKS = 1;

คำค้น: disable fk constraints, FOREIGN KEY CHECKS, truncate mysql forrent key

เรื่องอื่น ๆ ที่เกี่ยวข้อง