関連記事
MySQLとMariaDBの機能違いとその他の違いについて調べてまとめました。同じくRDMSで根は一...
AWS MySQL 5.6廃止を受けて、ローカルDocker CentOS7マシン MySQL5.6...
Mysql 5.7以降にsql_mode only_full_group_byの設定による GROU...
mysql upper lower関数使って、文字列大文字から小文字、小文字を大文字に変換する方法...
データーベース削除しようと思ったら foreign 外部キーが邪魔で delete 削除あるいは update 更新できませんとのエラーが出ました。
mysql> drop database test_database;
ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails
外部キー関係を持つテーブルを削除するには、foreign_key_checks を 0 に設定する無効化が必要
mysql> SET FOREIGN_KEY_CHECKS = 0;
Query OK, 0 rows affected (0.00 sec)
mysql> drop database test_database;
Query OK, 3 rows affected (0.04 sec)
無事削除できた
外部キーに関して正しく順序付けられていないテーブルがダンプファイルに含まれている場合でも、そのテーブルを任意の順序でインポートできます。また、インポート操作も高速化されます。foreign_key_checks を 0 に設定することは、LOAD DATA および ALTER TABLE 操作中に外部キー制約を無視するためにも役立つ場合があります。ただし、foreign_key_checks = 0 の場合でも、MySQL では、カラムが一致しないカラム型を参照している外部キー制約の作成は許可されません。また、テーブルに外部キー制約が存在する場合は、ALTER TABLE を使用して、そのテーブルを別のストレージエンジンを使用するように変更することはできません。ストレージエンジンを変更するには、まず外部キー制約をすべて削除する必要があります。
SET foreign_key_checks = 0 を実行しないかぎり、FOREIGN KEY 制約によって参照されるテーブルに対して DROP TABLE を発行できません。テーブルを削除すると、そのテーブルを作成するために使用されたステートメントで定義されていた制約もすべて削除されます。
MySQL リファレンスマニュアル 外部キーおよびその他の MySQL ステートメント (opens new window)による
MySQLとMariaDBの機能違いとその他の違いについて調べてまとめました。同じくRDMSで根は一...
AWS MySQL 5.6廃止を受けて、ローカルDocker CentOS7マシン MySQL5.6...
Mysql 5.7以降にsql_mode only_full_group_byの設定による GROU...
mysql upper lower関数使って、文字列大文字から小文字、小文字を大文字に変換する方法...