MySQL の複合主キーは、テーブル内の複数のフィールドで構成される主キーを指し、各レコードを一意に識別するために使用されます。単一の主キーとは異なり、複合主キーは複数のフィールドの値を組み合わせて形成されます。テーブルを作成するときに、複数のフィールドを主キーとして指定することにより、複合主キーを定義できます。
複合主キーの定義と機能を示すために、まず users
という名前のテーブルを作成します。このテーブルには、id
、username## が含まれます。 # と
email これら 3 つのフィールドのうち、
id は自動インクリメントされる主キー、
username はユーザー名、
email はユーザーのメールアドレス。 2 つのフィールド
username と
email を複合主キーとして結合します。
CREATE TABLE ユーザー (
id INT AUTO_INCREMENT 主キー、
ユーザー名 VARCHAR(50) NOT NULL、
電子メール VARCHAR(50) NOT NULL、
主キー(ユーザー名、メールアドレス)
);
上記のコードでは、複合主キーは、
CREATE TABLE ステートメントの
PRIMARY KEY(username, email) と
を使用して定義されています。 username 2 つのフィールド と
email は、一意の識別子として結合されます。
次に、テーブルにデータを挿入します。複合主キーが存在するため、各レコードの
username と
email の組み合わせは次のようにする必要があることに注意してください。個性的。
INSERT INTO users (username, email) VALUES ('alice', 'alice@example.com');
INSERT INTO users (username, email) VALUES ('bob', 'bob@example.com');
username と
email を挿入しようとすると以前に記録したものと同じデータは、一意制約エラーをトリガーします。
INSERT INTO users (username, email) VALUES ('alice', 'alice@example.com');
-- 出力エラー: キー 'PRIMARY' のエントリ 'alice@example.com' が重複しています
これは複合主キーの機能の 1 つであり、テーブル内の各レコードのフィールド値を結合した値が確実に一致するようにします。データの重複を避けるためにユニークです。
実際のアプリケーションでは、複合主キーを使用すると、データ テーブル設計におけるデータの整合性をより正確に制御できます。データベース内のレコードを複数のフィールドを通じて一意に識別する必要がある場合、複合主キーを使用すると、より優れたデータ整合性保護を実現できます。同時に、一部のクエリやテーブル関連付け操作では、複合主キーにも特別な用途があり、クエリの効率と精度の向上に役立ちます。
要約すると、MySQL の複合主キーは複数のフィールドで構成される主キーであり、各レコードを一意に識別するために使用されます。この例では、複合主キーを定義する方法と、データの整合性とクエリ効率におけるその役割を示します。複合主キーを理解するのに役立つことを願っています。
以上がMySQL複合主キーの定義と機能の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。