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

Comment implémenter une clé primaire à deux colonnes avec incrémentation automatique dans MySQL ?

Patricia Arquette
Libérer: 2024-12-08 08:59:11
original
854 Les gens l'ont consulté

How to Implement a Two-Column Primary Key with Auto-Increment in MySQL?

MySql : configuration d'une clé primaire à deux colonnes avec fonctionnalité d'incrémentation automatique

Contexte et énoncé du problème

Dans un scénario où plusieurs bases de données possèdent des structures similaires et les données doivent être conservées entre eux, la protection de l’intégrité des données est cruciale. L'utilisation d'une clé primaire à deux colonnes s'avère bénéfique à cet égard. Une colonne, représentant un ID de base de données, établit une connexion à une table contenant des informations spécifiques à la base de données. Une autre colonne, la clé de table, possède l'attribut de non-unicité mais facilite la distinction des lignes grâce à la colonne ID de la base de données.

Le but est de joindre les deux colonnes en tant que clé primaire tout en automatisant simultanément les incréments de clé de table. en fonction de la colonne ID de la base de données.

Solution dans MySql

Pour MySql, une solution existe pour résoudre ce problème exigence :

1. Utilisation du moteur de stockage MyISAM :

MySql permet de spécifier AUTO_INCREMENT sur les colonnes secondaires dans les index à plusieurs colonnes, sous le moteur de stockage MyISAM. Cette caractéristique permet de générer automatiquement des valeurs pour la colonne AUTO_INCREMENT en utilisant la formule : MAX(auto_increment_column) 1 WHERE prefix=given-prefix.

2. Exemple de mise en œuvre :

Pour illustrer, considérons le schéma suivant :

CREATE TABLE mytable (
    table_id MEDIUMINT NOT NULL AUTO_INCREMENT,
    database_id MEDIUMINT NOT NULL,
    other_column CHAR(30) NOT NULL,
    PRIMARY KEY (database_id,table_id)
) ENGINE=MyISAM;
Copier après la connexion

3. Résultat :

L'insertion de données dans cette table, avec des exemples d'ID de base de données et d'autres données, démontre le comportement d'incrémentation automatique :

INSERT INTO mytable (database_id, other_column) VALUES
    (1,'Foo'),(1,'Bar'),(2,'Baz'),(1,'Bam'),(2,'Zam'),(3,'Zoo');
Copier après la connexion

La récupération des données révèle l'incrémentation automatique de la clé de la table basé sur l'ID de la base de données :

SELECT * FROM mytable ORDER BY database_id,table_id;

+----------+-------------+--------------+
| table_id | database_id | other_column |
+----------+-------------+--------------+
|        1 |           1 | Foo          |
|        2 |           1 | Bar          |
|        3 |           1 | Bam          |
|        1 |           2 | Baz          |
|        2 |           2 | Zam          |
|        1 |           3 | Zoo          |
+----------+-------------+--------------+
Copier après la connexion

En utilisant le moteur de stockage MyISAM et en comprenant les mécanismes d'auto-incrémentation sous clés primaires à plusieurs colonnes, cette approche garantit à la fois l'intégrité des données et une gestion simplifiée des données.

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