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

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

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

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

<h2>วิธีแก้ Error Foreign key constraint ใน MySQL<&sol;h2>&NewLine;<p>วิธีแก้ Error Foreign key constraint is incorrectly formed<br &sol;>&NewLine;<strong>วิธีแก้ Error Foreign key constraint is incorrectly formed<&sol;strong><br &sol;>&NewLine;สาเหตุของ error เกิดจากการที่เราพยายามที่จะสร้าง table หรือเพิ่ม row data เข้าไปในฐานข้อมูลแต่รูปแบบของข้อมูลในตารางนั้น มีบาง field ที่ถูกกำหนดให้มีความสำพันธ์กับตารางอื่นในฐานข้อมูลเดียวกัน<br &sol;>&NewLine;หรืออีกอย่างหนึ่งก็คือ ในตารางที่เราพยายามจะสร้างนั้นมีการสร้าง Foreign key ซึ่งเป็น Primary Key ของตารางอื่นที่สัมพันธ์กันอยู่ เพื่อป้องกันข้อผิดพลาด ระบบจึงแจ้ง error และไม่ทำงานคำสั่ง MySQL ที่เราเขียนไป<br &sol;>&NewLine;<&excl;--more--><&sol;p>&NewLine;<h4>วิธีแก้เบื้องต้น<&sol;h4>&NewLine;<ul>&NewLine;<li>&NewLine;กรณีใช้ phpmyadmin ด้วยคำสั่ง MySQL Query ให้เอาติ๊กถูกที่ Enable foreign key checks ออก หรือใช้คำสั่ง MySQL<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " >SET FOREIGN&lowbar;KEY&lowbar;CHECKS&equals;0&semi;<&sol;pre>&NewLine;<p><&sol;br><br &sol;>&NewLine;<img src&equals;"https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2018&sol;11&sol;วิธีแก้-Error-Foreign-key-constraint-ใน-MySQL-1&period;jpg" alt&equals;"วิธีแก้-Error-Foreign-key-constraint-ใน-MySQL-1" &sol;><br &sol;>&NewLine;<&sol;br>&NewLine;<&sol;li>&NewLine;<li>&NewLine;กรณีใช้ phpmyadmin แบบ Import ข้อมูล ก็ให้เอาติ๊กถูกออกที่ Enable foreign key checks<br &sol;>&NewLine;<&sol;br><br &sol;>&NewLine;<img src&equals;"https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2018&sol;11&sol;วิธีแก้-Error-Foreign-key-constraint-ใน-MySQL-2&period;jpg" alt&equals;"วิธีแก้-Error-Foreign-key-constraint-ใน-MySQL-2" &sol;><br &sol;>&NewLine;<&sol;br>&NewLine;<&sol;li>&NewLine;<&sol;ul>&NewLine;<p>ถ้าใช้คำสั่ง <strong>FOREIGN&lowbar;KEY&lowbar;CHECKS &equals; 0&semi;<&sol;strong> แล้วยังไม่สามารถ create table หรือ insert ข้อมูลได้ให้ลองยกเลิก FOREIGN KEY ด้วยคำสั่งด้านล่าง <&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " >ALTER TABLE tablename DROP FOREIGN KEY fieldname&semi;<&sol;pre>&NewLine;<p>ถ้าเป็นการ import ไฟล์ &period;sql เข้ามาให้เปิดไฟล์และลบคำสั่ง add key ทิ้้งไปทั้งหมด ตัวอย่างตามด้านล่างคือลบคำสั่ง ADD KEY &grave;pet&lowbar;uid&grave; &lpar;&grave;pet&lowbar;uid&grave;&rpar; ออกไป<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " >ALTER TABLE &grave;expense&grave; &NewLine; ADD PRIMARY KEY &lpar;&grave;expense&lowbar;uid&grave;&rpar;&comma; &NewLine; ADD KEY &grave;pet&lowbar;uid&grave; &lpar;&grave;pet&lowbar;uid&grave;&rpar;<&sol;pre>&NewLine;<p>error นี้เกิดขึ้นเพื่อป้องกันข้อผิดพลาดของข้อมูลระหว่างตารางที่อาจจะไม่ตรงกัน เช่น การ insert ข้อมูลลงไปใน field ที่เป็น foreign key ซึ่งเป็นข้อมูลที่ไม่มีอยู่จริงในตารางที่เป็น primary key ระบบจะแจ้ง error เพื่อป้องกันไม่ให้เกิดข้อผิดพลาดของข้อมูลนั่นเองครับ<&sol;p>&NewLine;

Exit mobile version