mysql外部キーを削除する

1. テーブル削除エラー
(1) エラー内容
テーブルを削除する際、正しい構文 DROP TABLE Course; を使用しましたが、削除できず、次のようなエラーが報告されました:
[Err] 3730 - テーブル 'コースを削除できません' テーブル 'teach' の外部キー制約 'fk_teach_course' によって参照されています。主な理由は、外部キーがあるためです。

(2) 解決
方法1:外部キーチェックをオフにして削除する ただし、削除後は忘れずに外部キーチェックをオンにするのですが、この方法はちょっと危険だと思います。他のテーブルの外部キーは削除されていないので、今後どうなるかわかりません。

SET foreign_key_checks=0; # 外部キーのチェックをオフにする
DROP TABLE Course;
SET foreign_key_checks=1; # 外部キーのチェックをオンにする

方法 2: 素直に外部キーを全種類削除する テーブル作成時に外部キーを設定していただいたのは大変お世話になりました、ついでに ON UPDATE CASCADE ON DELETE CASCADE にしてみてはいかがでしょうか

#構文: DROP TABLE table_name
#エラーメッセージに従って外部キーを見つける
DROP TABLE Course;
#テーブルに外部キーを削除するように教える
ALTER TABLE Teach DROP FOREIGN KEY fk_teach_course; #DROP TABLE コース
を削除する; #行ってみるスコアテーブルが削除されます Key ALTER TABLE Score DROP FOREIGN KEY fk_score_course; #再度DROP TABLE Course; #ついに成功





最後に、後のメンテナンスで失敗することがないよう、カスケードを使用してテーブルを構築することをお勧めします。
———————————————
著作権に関する声明: この記事は CSDN ブロガー「Bubling」のオリジナル記事であり、CC 4.0 BY-SA 著作権契約に従い、オリジナルのソースリンクとこれを添付してください。声明。
元のリンク: https://blog.csdn.net/weixin_43762330/article/details/105307195

おすすめ

転載: blog.csdn.net/wangyuhong2267/article/details/125261556