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 シリーズ データベース設計 3 つのパラダイム チュートリアルの例

目次1. データベース設計の3つのパラダイムに関する知識の説明1. デザインパラダイムとは何ですか?...

HTML 左、中央、右の適応レイアウト (calc css 式を使用)

最新の HTML 標準には、レイアウトを計算するために使用できる calc CSS 式があります。し...

Axiosは繰り返しのリクエストをキャンセル

目次序文1. リクエストをキャンセルする方法2. 重複リクエストの判定方法3. 繰り返しリクエストを...

MySQLインスタンスが起動できない問題の分析と解決

目次序文シナリオ分析要約する序文数日前、友人がWeChatで私に連絡してきて、マシンがダウンタイムか...

MySQL 5.7 および 8.0 データベースのルート パスワードを忘れた場合の解決策

注: MySQL5.7 で root パスワードをクラックするには、パスワード認証をスキップしてデー...

CentOS システムの rpm インストールと Nginx の設定

目次CentOS rpm のインストールと Nginx の設定導入rpm パッケージのインストールサ...

Vue は better-scroll を使用して水平スクロール方法の例を実現します

1. スクロールの実装原理better-scroll のスクロール原理は、ブラウザのネイティブスクロ...

MySQL inndbジョイントインデックスを正しく使用する方法を徹底的に理解するためのケーススタディ

最近確認された5件のデータを照会するビジネスがあります。 `id`、`title` を選択 `th_...

挿入前にレコードが既に存在するかどうかを確認するには、SQL ステートメントを使用します。

目次SQL文を挿入する前にレコードが既に存在するかどうかを確認するSQL挿入時の判断の簡単なコレクシ...

VueはEchartsを使用して3次元棒グラフを実装します

この記事では、Echartsを使用して3次元棒グラフを実装するVueの具体的なコードを参考までに共有...

Tudou.comのホームページのデザイン方法

<br />私は数年間フロントエンドに取り組んできました。フロントエンドについて完全に理...

MySQLトリガーについて深く理解するための記事

目次1. SC テーブルを挿入または変更するときに、テスト スコアが 0 ~ 100 の範囲外の場合...

Nginx 設定場所のマッチング優先順位の簡単な分析

序文Nginx 構成のサーバー ブロック内の場所は、リクエスト URI を一致させるために使用され、...

MySQL テーブル削除操作の実装 (delete、truncate、drop の違い)

この記事では主に、MySQL でテーブルを削除する 3 つの操作、つまり delete ステートメン...

React における ref の一般的な使用法の概要

目次Refsとは何か1. 文字列型参照2. コールバック参照React.createRef() 4....