Dans le moteur de stockage InnoDB de MySQL, la clé primaire est généralement auto-incrémentée. Cependant, il est également possible d'incrémenter automatiquement une clé non primaire.
Un schéma de base de données comprend deux tables : "book_comments" et "book_comments_votes". La table "book_comments" comporte une colonne de clé non primaire "comment_id" qui doit être auto-incrémentée pour des raisons de cohérence avec la table "book_comments_votes", qui contient une référence à "comment_id" comme clé primaire.
Pour auto-incrémenter une clé non primaire, elle doit être déclarée comme index. Voici un exemple :
CREATE TABLE `book_comments` (
`book_id` MEDIUMINT NOT NULL,
`timestamp` MEDIUMINT NOT NULL,
`user_id` MEDIUMINT NOT NULL,
`vote_up` SMALLINT,
`vote_down` SMALLINT,
`comment` TEXT,
`comment_id` MEDIUMINT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`book_id`, `timestamp`, `user_id`),
KEY `comment_id` (`comment_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
Bien que la création d'un index simple sur la clé non primaire soit la solution la plus simple, certaines alternatives existent :
Cependant, le La solution recommandée reste de créer un index unique sur la clé non primaire et d'éviter les inconvénients des alternatives. Cette approche offre à la fois simplicité et intégrité sans sacrifier les performances ou l'efficacité du stockage des données.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3