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`) );
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!