mysqlの主キーの変更

WBOY
リリース: 2023-05-18 11:50:07
オリジナル
3573 人が閲覧しました

MySQL データベースでは、主キー (Primary Key) はデータ テーブル内の各レコードの一意性を保証する非常に重要な概念です。通常の状況では、主キーはデータ テーブルの作成時に定義され、変更できないようにする必要があります。主キーを変更する必要がある場合は、悪影響を避けるために非常に狭い範囲内で変更する必要があります。この記事では、MySQL データベースの主キーを変更する方法を紹介します。

I. 主キーとは

MySQL データベースでは、主キーはデータ テーブル内の各レコードを一意に識別するために使用される 1 つ以上の列を指します。主キーの定義は通常、データテーブルの作成時に定義され、変更できません。主キーの定義は、次の条件を満たす必要があります。

  1. 一意性: 主キーの各値は一意である必要があります。
  2. 非 null: 主キーの各値は非 null である必要があります。
  3. Unchangeable: 主キーは定義後に変更できません。
  4. 最小化: 主キーはできるだけ短くする必要があります。これにより、記憶域スペースとクエリのパフォーマンスへの影響を軽減できます。

MySQL データベースでは、次のようなさまざまな方法で主キーを定義できます。

  1. 単一列の主キー: 単一列の主キー: データベース内に 1 つの列のみを意味します。データテーブルは主キーとして定義されます。
  2. 複合主キー: 主キーとして定義され、レコードの各行を一意に識別するために結合されるデータ テーブル内の複数の列を指します。
  3. 主キー制約: 主キー制約とも呼ばれ、データ テーブルの作成時に PRIMARY KEY キーワードを使用して列を主キーとして定義することを指します。

II. MySQL での主キー変更の制限

MySQL データベースでは、主キーは一度定義されると変更できません。これは、データベースの整合性と一貫性を確保するためです。データテーブル。したがって、主キーを変更するには、次の条件を満たす必要があります。

  1. 変更された主キー列には外部キー制約が含まれていません。
  2. 変更された主キー列はどのインデックスにも含まれていません。
  3. データテーブルはパーティション化されていません。

III. MySQL で主キーを変更する方法

  1. まず、元の主キーを削除する必要があります。次のコマンドを使用できます:
ALTER TABLE table_name DROP PRIMARY KEY;
ログイン後にコピー
  1. 次に、主キーを再定義する必要があります。次のコマンドを使用できます。
ALTER TABLE table_name ADD PRIMARY KEY (column_name);
ログイン後にコピー

このうち、column_name は、データ テーブルの主キーとして定義される列の名前を指します。これは、単一の列または複合主キーにすることができます。複数の列で結合して定義されたキー。新しく定義された主キーは条件 1 ~ 4 を満たす必要があることに注意してください。

たとえば、次のフィールドを含む「users」という名前のデータ テーブルがあるとします。

id int(11) NOT NULL AUTO_INCREMENT,
username varchar(255) NOT NULL,
email varchar(255) NOT NULL,
PRIMARY KEY (id)
ログイン後にコピー

主キーを「id」フィールドから「username」に変更したい場合" フィールドで、次のコマンドを実行する必要があります:

ALTER TABLE users DROP PRIMARY KEY;
ALTER TABLE users ADD PRIMARY KEY (username);
ログイン後にコピー

IV. 概要

MySQL の主キーは非常に重要な概念です。データ テーブル内の各レコードを一意に識別するために使用されます。データテーブルの整合性と一貫性を確保するため。通常の状況では、主キーはデータ テーブルの作成時に定義され、変更できないようにする必要があります。主キーを変更する必要がある場合は、悪影響を避けるために非常に狭い範囲内で変更する必要があります。

以上がmysqlの主キーの変更の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート