Maison > base de données > tutoriel mysql > Comment incrémenter automatiquement les clés non primaires dans MySQL InnoDB ?

Comment incrémenter automatiquement les clés non primaires dans MySQL InnoDB ?

Barbara Streisand
Libérer: 2024-10-30 01:47:29
original
1012 Les gens l'ont consulté

How to Auto-Increment Non-Primary Keys in MySQL InnoDB?

MySQL InnoDB : auto-incrémentation des clés non primaires

Le moteur de stockage InnoDB de MySQL permet l'auto-incrémentation des valeurs pour les clés primaires. Cependant, l'incrémentation automatique des clés non primaires n'est pas directement prise en charge.

Question spécifique : structure de la table

Considérez la structure de table suivante pour "book_comments" :

book_id     medium_int
timestamp   medium_int
user_id     medium_int
vote_up     small_int
vote_down   small_int
comment     text
comment_id  medium_int
Copier après la connexion

L'incrémentation automatique des clés non primaires est-elle possible ?

Oui, il est possible d'incrémenter automatiquement une clé non primaire. Cependant, cela nécessite de créer un index sur la colonne à incrémenter automatiquement.

Solution recommandée

Malgré la possibilité d'auto-incrémenter des clés non primaires, la solution recommandée La solution consiste à faire de "comment_id" la clé primaire et à créer un index unique sur la combinaison de "book_id", "timestamp" et "user_id" à des fins d'intégrité des données.

Considérations supplémentaires

Les suggestions alternatives mentionnées dans la question présentent des inconvénients :

  • Faire de "comment_id" la clé primaire et créer un index unique : Cette solution introduit un index supplémentaire , ce qui n'est peut-être pas souhaitable.
  • Remplacement de "comment_id" par la clé primaire dans "book_comments_votes": Cela augmente considérablement la taille de "book_comments_votes" et peut affecter les performances.

Par conséquent, la solution la plus efficace et la plus robuste consiste à suivre l'approche recommandée consistant à utiliser "comment_id" comme clé primaire et à créer un index unique sur "book_id", "timestamp" et "user_id".

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 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