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 チュートリアル)

推薦する

MySQL 数値型オーバーフローの処理方法

さて、質問させてください。MySQL で列を int(0) に設定すると何が起こりますか?この問題を...

CSSフローティングとフローティング解除について

フロートの定義要素を通常のドキュメント フローから外し、要素を左また​​は右に近づけます。親要素の端...

画面なしで無線ネットワークに接続しているときに Raspberry Pi の IP アドレスを見つける方法

あなたがlinuxerだと仮定すると、 windowserだとは想定しません。Windows ユーザ...

MySQLはデータテーブル内の既存のテーブルを分割します

目次操作方法操作プロセス既存のテーブルにパーティション テーブルを作成し、データを新しいテーブルに移...

77.9K の GitHub リポジトリを持つ Axios プロジェクト: 学ぶ価値のあることは何でしょうか?

目次序文1. Axiosの紹介2. HTTPインターセプターの設計と実装2.1 インターセプターの紹...

下線を実現するための CSS3 トランジションの例コード

この記事では、下線を実現するための CSS3 トランジションのサンプル コードを紹介します。このコー...

IE6のmin-widthとmin-heightと互換性を持たせる簡単な方法

ウェブサイトがワイドスクリーンの場合、ブラウザ ウィンドウを左右にドラッグすると、ウェブサイトの幅が...

MySql エラー 1698 (28000) の解決策

1. 問題の説明: MysqlERROR1698 (28000) の解決方法、新しくインストールされ...

sqlmap インジェクションの詳細なグラフィック説明

目次1. この Web サイトには SQL インジェクションの脆弱性がある可能性があることが判明しま...

CSS3 で Taobao に空白スペースを実装する方法

Taobao用の空白スペースを作成します。 ブラウザページを縮小すると、コンテンツ領域は縮小されませ...

mysqladmin を使用して MySQL インスタンスの現在の TPS と QPS を取得する方法

mysqladmin は管理と操作を行う公式の mysql クライアント プログラムです。MySQL...

Dockerコンテナ相互接続の予備的な実践についての簡単な説明

1. Dockerコンテナ間の相互接続Docker は現在、軽量の仮想化ソリューションとなっています...

MySQL の自動増分 ID (主キー) が不足した場合の解決策

MySQL で使用される自動インクリメント ID には多くの種類があり、各自動インクリメント ID ...

js の関数の長さはどれくらいですか?

目次序文なぜいくらですか?パラメータの数デフォルトパラメータ残りのパラメータ要約する序文今日は関数の...

Linuxシステムにmsfをインストールするプロセスの詳細な説明

または、インストールプロセスを自分で書き留めてください。私のサーバーシステムはAliyun Linu...