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

推薦する

興味深いカウントダウン効果を実現するjs

js興味深いカウントダウンケース、参考までに、具体的な内容は次のとおりですコード: <!DO...

ZabbixはSNMPに基づいてLinuxホストを監視します

序文: Linux ホストは、エージェント プログラムをインストールする場合でも、SNMP を使用す...

MySQLはconnect_by_isleaf MySQLメソッドまたはストアドプロシージャに似た機能を実装します

最近、特に異常なビジネス需要があり、テーブルがあります テーブル「デモ」を作成します( `id` i...

MySQL ストアド プロシージャ、カーソル、トランザクションの例の詳細な説明

MySQL ストアド プロシージャ、カーソル、トランザクションの例の詳細な説明以下は私が作成した M...

MySQL 8.0.19 インストール詳細チュートリアル (Windows 64 ビット)

目次MySQLを初期化するMySQL サービスをインストール + MySQL サービスを開始MySQ...

MySQL mysqladmin クライアントの使用の概要

目次1. サーバーの状態を確認します。 2. ルートパスワードを変更します。 3. mysqlser...

jsオブジェクトの読み取り速度の詳細な例

1. リテラルとローカル変数へのアクセスは最も高速ですが、配列要素とオブジェクト メンバーへのアクセ...

Linux ファイルディレクトリ管理コマンドの概要

タッチコマンドこれには 2 つの機能があります。1 つは、既存のファイルの時間タグを現在のシステム時...

JavaScript で配列の最大値と最小値を実装する 6 つの方法

配列[1,8,5,4,3,9,2]が与えられた場合、配列の最大値9と最小値1を取得するアルゴリズムを...

HTMLノードの追加と削除の簡単な例

<br />HTMLノードの追加と削除の簡単な例<input type="...

mysql 3つのテーブルを接続してビューを作成する

3 つのテーブルが接続されています。テーブル A のフィールド a はテーブル B のフィールド b...

Vue3 ドラッグ可能な左パネルと右パネルの分割コンポーネントの実装

目次コンポーネントの分解左パネル右パネル入力パラメータの分解小道具スロット具体的な実装ドラッグする方...

メンテナンス可能なJSコードの書き方を教えます

目次保守可能なコードとは何ですか?コード規約1. 読みやすさ2. 変数と関数の命名3. 透過的な変数...

MySQL NULLがピットを引き起こした

比較演算子でNULLを使用する mysql> 1>NULLを選択します。 +------...

HTML入力ドロップダウンメニューを実装する方法

コードをコピーコードは次のとおりです。 <html> <ヘッド> <m...