MySQL出現無法刪除行記錄


今天mysql在刪除一張InnoDB類型的表時,出現錯誤Error No. 1451

MYSQL: Cannot delete or update a parent row: a foreign key constraint fails

 

解決方法:

這可能是MySQL在InnoDB中設置了foreign key關聯,造成無法更新或刪除數據。可以通過設置FOREIGN_KEY_CHECKS變量來避免這種情況。

SET FOREIGN_KEY_CHECKS = 0;

執行刪除sql語句;
刪除完成后設置 ;
SET FOREIGN_KEY_CHECKS = 1;

 



其他:
關閉唯一性校驗
set unique_checks=0;
set unique_checks=1;

 

 

mysql> delete from repositories where repo_name = "watch/sinawatch_agent_update";
ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`rhodecode`.`repo_to_perm`, CONSTRAINT `repo_to_perm_ibfk_3` FOREIGN KEY (`repository_id`) REFERENCES `repositories` (`repo_id`))
 
這可能是MySQL在InnoDB中設置了foreign key關聯,造成無法更新或刪除數據。可以通過設置FOREIGN_KEY_CHECKS變量來避免這種情況。
 
mysql> SET FOREIGN_KEY_CHECKS = 0;
Query OK, 0 rows affected (0.02 sec)
 
mysql> delete from repositories where repo_name = "watch/sinawatch_agent_update";
Query OK, 1 row affected (0.02 sec)
 
mysql> SET FOREIGN_KEY_CHECKS = 1;
Query OK, 0 rows affected (0.00 sec)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM