MySQLで関連テーブルを削除する実用的な方法

MySQLで関連テーブルを削除する実用的な方法

MySQL データベースでは、テーブルが互いに関連付けられた後は、それらを任意に削除することはできません。削除すると、関連付けられているすべてのテーブルの構造が影響を受けます。では、関連付けられているテーブルを安全に削除するにはどうすればよいでしょうか。調べてみましょう。

テーブルから外部キー制約を削除する

外部キーは、テーブルをその親テーブルに関連付ける特別なフィールドです。テーブルが作成されると、外部キー制約はすでに設定されています。それらの間の関連付けを削除するには、次のステートメントを使用する必要があります。

テーブルを変更し、テーブル名を削除し、外部キーと外部キーの別名を削除します。

外部キーエイリアスパラメータは、テーブルの作成時に設定された外部キーコードを参照します。

2. 関連付けられていない共通テーブルを削除する

テーブル名を削除します。

テーブルを削除すると、テーブル内のすべてのデータも削除されます。テーブルを削除するときは、まずテーブル内のデータをバックアップすることをお勧めします。

3. 他のテーブルに関連付けられた親テーブルを削除する

関連付けられているリレーションシップを持つテーブルを削除する場合、テーブルに依存する外部キーがあるため、drop table example1 を使用するとエラーが発生します。

たとえば、example1 テーブルに依存する example4 テーブルが作成され、example4 テーブルの外部キー stu_id は example1 テーブルの主キーに依存します。 example1 テーブルは example4 テーブルの親テーブルです。

example4 テーブルを削除する場合は、まずこの依存関係を削除する必要があります。最も簡単な方法は、最初に子テーブル example4 を削除し、次に親テーブル example1 を削除することです。ただし、サブテーブル内の他のデータに影響する可能性があります。

別の方法としては、まず子テーブルの外部キー制約を削除し、次に親テーブルを削除します。この方法はサブテーブル内の他のデータに影響を与えず、データベースのセキュリティを確保できます。

たとえば、example4 の外部キーの別名は d_fk です。example4 の外部キー制約を削除します。

テーブル例4を変更し、外部キーd_fkを削除します。

削除されたかどうかを確認するには、show create table example4 \G を実行します。

次に、drop table example1; を実行します。

実行が成功すれば、操作は成功です。

以下もご興味があるかもしれません:
  • MySQL ネストクエリと結合テーブルクエリの最適化方法
  • mysql の行と列の動的変換の実装 (分割表、クロス表)
  • MySQL でのジョイントテーブルの更新と削除の構文の紹介
  • MySQL ジョイントテーブルクエリの簡単な例

<<:  JavaScript 配列の include と Reduce の基本的な使用法

>>:  VMware12 インストール centOS8 構成グラフィック チュートリアルの詳細説明 (vm 仮想マシン インストール centos8 チュートリアル)

推薦する

Linux環境変数の設定戦略の詳細な説明

ソフトウェアのインストールをカスタマイズする場合、多くの場合、環境変数を設定する必要があります。以下...

インストールされていないバージョンの MySQL を使用する手順とパスワードを忘れた場合の解決策

最初のステップは、圧縮されたパッケージを対応するディスクに解凍することです。 2 番目の手順は、cm...

dockerでデプロイされたjenkinsでgitプログラムを実行する際の問題について

1. まず、gitを関連付けるときにエラーメッセージが報告されます: エラー: ビルドするリビジョン...

Dockerのヘルス検出メカニズム

コンテナの場合、最も単純なヘルスチェックはプロセス レベルのヘルスチェックであり、プロセスが稼働して...

MySQL query_cache_type パラメータと使用方法の詳細

MySQL クエリ キャッシュを設定する目的は次のとおりです。クエリ結果をキャッシュしておくと、次回...

Vue3 コンポジション API でロジックの再利用を実装する方法

Composition API はロジック再利用手順を実装します。ロジックコードを関数に抽出します。...

MySQL接続クエリにおけるととwhereの違いの簡単な分析

1. テーブルを作成する テーブル「学生」を作成( `id` int(11) NULLではない、 `...

MySQLでorder byを使用せずにランキングを実装する3つの方法のまとめ

ビジネスを想定: 2位の従業員の給与情報を見るデータベースを作成する emps が存在する場合はデー...

海外でダウンロードできる25個の新鮮で便利なアイコンセット

1. Eコマースアイコン2. アイコンスイーツ2 3. 携帯電話アイコンパック4. 旗アイコンセット...

Vue プロジェクト @change 複数のパラメータを使用して複数のイベントを渡す

まず、変更イベントは 1 つだけです。 changelevel() //値を選択選択を変更して行の値...

MySQLの主キーと外部キーの使用と説明を簡単に説明します

目次1. 外部キー制約外部キーとは何ですか?外部キーを使用する条件:外部キーの定義構文は次のとおりで...

面接でよく聞かれる Vue 修飾子 13 個

目次1. 怠惰な2.トリム3.番号4.停止5. キャプチャ6.自分7.一度8.予防する9.ネイティブ...

Linux での MySQL データベースのアンインストール

Linux で MySQL データベースをアンインストールするにはどうすればいいですか? 以下では、...

nginx でクロスドメイン障害修復を構成する方法の例

Nginxのクロスドメイン設定は次のようには機能しません サーバー{ 聞く 80; server_n...

CSS でフロートとマージンを混合するサンプルコード

最近の勉強で、GitHub でレイアウトの練習をいくつか見つけたのですが、レイアウトにまったく慣れて...