Maison > base de données > tutoriel mysql > Comment implémenter une clé primaire composite avec une colonne à incrémentation automatique dans MySQL ?

Comment implémenter une clé primaire composite avec une colonne à incrémentation automatique dans MySQL ?

Barbara Streisand
Libérer: 2024-11-04 08:55:01
original
795 Les gens l'ont consulté

How to implement a composite primary key with an auto-increment column in MySQL?

Implémentation d'une clé primaire composite avec incrémentation automatique dans MySQL

Les tables MySQL InnoDB prennent en charge les clés primaires composites, permettant l'identification de lignes uniques à l'aide de plusieurs colonnes . Cependant, il est important de noter qu'une seule colonne peut être auto-incrémentée et qu'elle doit être spécifiée dans le cadre de la définition de la clé primaire.

Lorsque vous essayez de créer une clé primaire composite avec une colonne d'auto-incrémentation et deux clés étrangères, les utilisateurs peuvent rencontrer une erreur indiquant « ERREUR 1075 : définition de table incorrecte ; il ne peut y avoir qu'une seule colonne automatique et elle doit être définie comme une clé ».

Pour surmonter ce problème et implémenter le composite souhaité une clé primaire, des déclencheurs ou des procédures sont généralement recommandés. Cependant, pour plus de simplicité, une approche alternative consiste à utiliser le déclencheur MySQL suivant :

<code class="sql">DELIMITER $$

CREATE TRIGGER xxx BEFORE INSERT ON issue_log
FOR EACH ROW BEGIN
    SET NEW.sr_no = (
       SELECT IFNULL(MAX(sr_no), 0) + 1
       FROM issue_log
       WHERE app_id  = NEW.app_id
         AND test_id = NEW.test_id
    );
END $$

DELIMITER ;</code>
Copier après la connexion

Ce déclencheur calcule et attribue automatiquement une valeur 'sr_no' incrémentielle pour les nouvelles lignes partageant les mêmes 'app_id' et 'test_id 'valeurs. En implémentant ce déclencheur, vous pouvez obtenir la clé primaire composite souhaitée avec une colonne à incrémentation automatique.

N'oubliez pas que les déclencheurs nécessitent une manipulation appropriée pour garantir l'intégrité des données et éviter les conditions de concurrence. Il est recommandé de tester et de maintenir minutieusement les déclencheurs pour éviter tout comportement inattendu ou tout goulot d'étranglement de performances.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal