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

Comment maintenir l'incrémentation automatique lors de la modification de la clé primaire dans MySQL ?

Linda Hamilton
Libérer: 2024-10-30 00:10:02
original
664 Les gens l'ont consulté

How to Maintain Auto-Increment While Changing  Primary Key in MySQL?

Maintenir l'incrémentation automatique tout en changeant la clé primaire en ID membre

Dans MySQL, la création d'une table avec une colonne à incrémentation automatique nécessite également être désignée comme clé primaire. Cependant, dans les cas où la clé primaire doit être un champ différent, les utilisateurs peuvent rencontrer l'erreur "#1075 - Définition de table incorrecte."

Pour résoudre ce problème, il est possible de conserver la colonne à incrémentation automatique. (id) tout en faisant de memberid la clé primaire. Ceci peut être réalisé en créant un index (clé) sur la colonne id :

CREATE TABLE members (
  `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `memberid` VARCHAR(30) NOT NULL,
  `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `firstname` VARCHAR(50) NULL,
  `lastname` VARCHAR(50) NULL,
  PRIMARY KEY (`memberid`),
  KEY (`id`)
);
Copier après la connexion

Cette solution garantit que les performances de la table restent optimisées pour les insertions et mises à jour séquentielles, car la colonne id reste auto-incrémentée . Pendant ce temps, les requêtes peuvent identifier efficacement les utilisateurs par leur identifiant de membre.

En ajoutant un index sur la colonne id, MySQL peut localiser rapidement les lignes utilisant ce champ, même s'il ne s'agit pas de la clé primaire. Cependant, il est important de noter que les performances peuvent être légèrement plus lentes par rapport à l'utilisation directe de la colonne id comme clé primaire.

Cette approche permet une flexibilité dans la conception de la base de données tout en conservant de bonnes performances, en sacrifiant un espace disque minimal pour une convivialité accrue et optimisation des requêtes.

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!