ホームページ >データベース >mysql チュートリアル >MySQL の複数の列にわたって一意の制約を作成するにはどうすればよいですか?

MySQL の複数の列にわたって一意の制約を作成するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-15 04:17:13317ブラウズ

How to Create a Unique Constraint Across Multiple Columns in MySQL?

MySQL の複数の列に一意の制約を指定する

データ管理では、正確で信頼性の高い記録を維持するためにデータの整合性を確保することが重要です。これを実現する 1 つの方法は、特定の列に一意の制約を定義し、同じ値を持つ重複エントリを禁止することです。この記事では、MySQL で複数の列に一意の制約を作成する方法を検討します。

この概念を説明するために、投票テーブルについて考えてみましょう。

CREATE TABLE votes (
    id INT NOT NULL AUTO_INCREMENT,
    user VARCHAR(255) NOT NULL,
    email VARCHAR(255) NOT NULL,
    address VARCHAR(255),
    PRIMARY KEY (id)
);

このテーブルには ID が含まれています列が主キーであり、他の 3 つの列 (ユーザー、電子メール、およびアドレス)。ここで、このテーブル内の 2 つの行がユーザー、電子メール、およびアドレスの値の同一の組み合わせを持たないようにしたいと考えています。つまり、これら 3 つの列にわたって一意制約を作成したいと考えています。

これを実現するには、ALTER TABLE ステートメントを ADD UNIQUE 句と組み合わせて使用​​します。

ALTER TABLE votes ADD UNIQUE INDEX unique_index (user, email, address);

これこのコマンドは次の 2 つのことを実行します。

  1. ALTER を使用して投票テーブルのスキーマを変更します。 TABLE.
  2. ADD UNIQUE を使用して、指定された列 (ユーザー、電子メール、アドレス) に unique_index という名前の一意の制約を追加します。

この一意の制約は、次のルールを適用します。投票テーブルには、ユーザー、電子メール、アドレスの値を同じ組み合わせにすることはできません。これにより、データの整合性が確保され、重複したエントリがテーブルに挿入されるのを防ぐことができます。

要約すると、MySQL の複数の列に一意制約を適用することで、データの整合性を効果的に維持し、各行が一意に識別されるようにすることができます。指定された列の組み合わせによって決まります。

以上がMySQL の複数の列にわたって一意の制約を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。