วิธีแก้-Error-Foreign-key-constraint-is-incorrectly-formed

วิธีแก้ Error Foreign key constraint ใน MySQL

วิธีแก้ Error Foreign key constraint is incorrectly formed
วิธีแก้ Error Foreign key constraint is incorrectly formed
สาเหตุของ error เกิดจากการที่เราพยายามที่จะสร้าง table หรือเพิ่ม row data เข้าไปในฐานข้อมูลแต่รูปแบบของข้อมูลในตารางนั้น มีบาง field ที่ถูกกำหนดให้มีความสำพันธ์กับตารางอื่นในฐานข้อมูลเดียวกัน
หรืออีกอย่างหนึ่งก็คือ ในตารางที่เราพยายามจะสร้างนั้นมีการสร้าง Foreign key ซึ่งเป็น Primary Key ของตารางอื่นที่สัมพันธ์กันอยู่ เพื่อป้องกันข้อผิดพลาด ระบบจึงแจ้ง error และไม่ทำงานคำสั่ง MySQL ที่เราเขียนไป

วิธีแก้เบื้องต้น

  • กรณีใช้ phpmyadmin ด้วยคำสั่ง MySQL Query ให้เอาติ๊กถูกที่ Enable foreign key checks ออก หรือใช้คำสั่ง MySQL



    วิธีแก้-Error-Foreign-key-constraint-ใน-MySQL-1

  • กรณีใช้ phpmyadmin แบบ Import ข้อมูล ก็ให้เอาติ๊กถูกออกที่ Enable foreign key checks


    วิธีแก้-Error-Foreign-key-constraint-ใน-MySQL-2

ถ้าใช้คำสั่ง FOREIGN_KEY_CHECKS = 0; แล้วยังไม่สามารถ create table หรือ insert ข้อมูลได้ให้ลองยกเลิก FOREIGN KEY ด้วยคำสั่งด้านล่าง

ถ้าเป็นการ import ไฟล์ .sql เข้ามาให้เปิดไฟล์และลบคำสั่ง add key ทิ้้งไปทั้งหมด ตัวอย่างตามด้านล่างคือลบคำสั่ง ADD KEY pet_uid (pet_uid) ออกไป

error นี้เกิดขึ้นเพื่อป้องกันข้อผิดพลาดของข้อมูลระหว่างตารางที่อาจจะไม่ตรงกัน เช่น การ insert ข้อมูลลงไปใน field ที่เป็น foreign key ซึ่งเป็นข้อมูลที่ไม่มีอยู่จริงในตารางที่เป็น primary key ระบบจะแจ้ง error เพื่อป้องกันไม่ให้เกิดข้อผิดพลาดของข้อมูลนั่นเองครับ

MySQL ความต่างระหว่าง LEFT, RIGHT, INNER และ OUTER... จากบทความเรื่องการใช้งาน UNION เพื่อรวมข้อมูลมากกว่า 2 ตาราง ใน MySQL การใช้งาน UNION ใน MySQL คำสั่งการ JOIN ข้อมูลใน MySQL นั้น จะแตกต่างจากคำส...
วิธี Query ข้อมูลใน MySQL แบบกำหนดช่วงเวลา... ใน MySQL เราสามารถ Query ข้อมูลมาแสดงผล แบบกำหนดช่วงเวลาที่เกิดขึ้นของข้อมูลแต่ละ row ได้ เพื่อจำกัดขอบเขตของข้อมูล ซึ่งอาจจะใช้สำหรับการออกรายงา...
วิธีทำ Website / MySQL ให้โหลดโคตรเร็วและรองรับคนป... วิธีทำ Website / MySQL ให้โหลดโคตรเร็วและรองรับคนปริมาณมาก ๆ วิธีทำ Website / MySQL ให้โหลดโคตรเร็วและรองรับคนปริมาณมาก ๆ ถ้าโจทย์คือการทำเว็บไซ...
บันทึก Emoji ด้วย MySQL ได้ทั้งใน iOS และ Android... บันทึก Emoji ด้วย MySQL ได้ทั้งใน iOS และ Android บันทึก Emoji ด้วย MySQL ได้ทั้งใน iOS และ Android สังเกตุไหมครับว่า keyboard บนมือถือทั้ง iOS ...

By codebee

- Programmer & Writer