Maison > base de données > tutoriel mysql > le corps du texte

Une colonne de clé non primaire dans MySQL InnoDB peut-elle être auto-incrémentée ?

Linda Hamilton
Libérer: 2024-10-30 10:12:32
original
343 Les gens l'ont consulté

Can a Non-Primary Key Column in MySQL InnoDB be Auto-Incremented?

Clés non primaires à incrémentation automatique dans MySQL InnoDB

Il est possible d'incrémenter automatiquement une colonne de clé non primaire dans MySQL InnoDB. Ceci peut être réalisé en créant un index sur la colonne.

Dans l'exemple donné, pour incrémenter automatiquement la colonne comment_id dans la table book_comments, suivez ces étapes :

<code class="sql">CREATE TABLE book_comments (
    book_id mediumint,
    timestamp mediumint,
    user_id mediumint,
    vote_up smallint,
    vote_down smallint,
    comment text,
    comment_id mediumint,

    PRIMARY KEY (book_id, timestamp, user_id),
    INDEX id (comment_id)
);</code>
Copier après la connexion

Ajout du INDEX sur comment_id active le comportement d'auto-incrémentation tout en garantissant que l'index correspondant est maintenu par InnoDB. Le nom de l'index d'identification peut être personnalisé selon les besoins.

Pour la table book_comments_votes, il est recommandé d'utiliser l'intégralité de la clé primaire de book_comments comme clé étrangère pour renforcer l'intégrité référentielle et éviter les doublons.

Alors faire de comment_id la clé primaire et renforcer l'intégrité via un index unique sur book_id, timestamp et user_id est conceptuellement viable, il est généralement considéré comme une bonne pratique d'avoir une clé primaire unique pour chaque table. Cela garantit une récupération et une maintenance cohérentes et fiables 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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!