Maison  >  Article  >  base de données  >  La définition et la fonction de la clé primaire composite MySQL

La définition et la fonction de la clé primaire composite MySQL

PHPz
PHPzoriginal
2024-03-15 17:18:041078parcourir

MySQL 复合主键的定义与作用

La clé primaire composite dans MySQL fait référence à la clé primaire composée de plusieurs champs dans la table, qui est utilisée pour identifier de manière unique chaque enregistrement. Contrairement à une clé primaire unique, une clé primaire composite est formée en combinant les valeurs de plusieurs champs. Lors de la création d'une table, vous pouvez définir une clé primaire composite en spécifiant plusieurs champs comme clés primaires.

Afin de démontrer la définition et la fonction de la clé primaire composite, nous créons d'abord une table nommée users, qui contient id, username et email Ces trois champs, parmi lesquels id est une clé primaire à incrémentation automatique, username est le nom d'utilisateur et email code> est l'adresse e-mail de l'utilisateur. Nous combinerons les deux champs <code>username et email ensemble pour former une clé primaire composite. users 的表,其中包含了 idusernameemail 这三个字段,其中 id 是自增主键,username 是用户名称,email 是用户邮箱。我们将通过 usernameemail 这两个字段组合在一起作为复合主键。

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(50) NOT NULL,
    PRIMARY KEY(username, email)
);

上面的代码中,通过在 CREATE TABLE 语句中使用 PRIMARY KEY(username, email) 来定义了复合主键,将 usernameemail 这两个字段组合在一起作为唯一标识。

接下来我们向表中插入一些数据,注意由于复合主键的存在,每条记录的 usernameemail 组合必须是唯一的。

INSERT INTO users (username, email) VALUES ('alice', 'alice@example.com');
INSERT INTO users (username, email) VALUES ('bob', 'bob@example.com');

如果我们再试图插入一条 usernameemail

INSERT INTO users (username, email) VALUES ('alice', 'alice@example.com');
-- 输出错误:Duplicate entry 'alice@example.com' for key 'PRIMARY'

Dans le code ci-dessus, la clé primaire composite est définie en utilisant PRIMARY KEY(username, email) dans l'instruction CREATE TABLE et username code > et <code>email sont combinés pour former un identifiant unique.

Ensuite, nous insérons quelques données dans le tableau. Notez qu'en raison de l'existence de la clé primaire composite, la combinaison de username et email pour chaque enregistrement doit être unique.

rrreee

Si nous essayons d'insérer une autre donnée où username et email sont identiques à l'enregistrement précédent, une erreur de contrainte unique sera déclenchée :

rrreee

Il s'agit de la clé primaire composite. L'une de ses fonctions est de garantir que la valeur du champ combiné de chaque enregistrement de la table est unique pour éviter la duplication des données. 🎜🎜Dans les applications pratiques, les clés primaires composites peuvent contrôler plus précisément l'intégrité des données dans la conception des tables de données. Lorsque les enregistrements d'une base de données doivent être identifiés de manière unique via plusieurs champs, une clé primaire composite peut offrir une meilleure protection de l'intégrité des données. Dans le même temps, dans certaines requêtes et opérations d'association de tables, les clés primaires composites ont également leurs utilisations spéciales, ce qui peut contribuer à améliorer l'efficacité et la précision des requêtes. 🎜🎜Pour résumer, la clé primaire composite dans MySQL est une clé primaire composée de plusieurs champs, qui est utilisée pour identifier de manière unique chaque enregistrement. Cet exemple montre comment définir une clé primaire composite et son rôle dans l'intégrité des données et l'efficacité des requêtes. J'espère qu'il sera utile pour comprendre les clés primaires composites. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn