Site icon บริษัท โค๊ดบี จำกัด

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

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

วิธีแก้-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 ที่เราเขียนไป

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

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

ALTER TABLE tablename DROP FOREIGN KEY fieldname;

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

ALTER TABLE `expense`
  ADD PRIMARY KEY (`expense_uid`),
  ADD KEY `pet_uid` (`pet_uid`)

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

Exit mobile version