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

Comment puis-je utiliser une colonne différente comme clé primaire tout en conservant l'incrémentation automatique dans MySQL ?

Susan Sarandon
Libérer: 2024-11-03 16:02:03
original
654 Les gens l'ont consulté

How Can I Use a Different Column as Primary Key While Maintaining Auto-Increment in MySQL?

Maintenir l'incrémentation automatique et utiliser une autre colonne comme clé primaire dans MySQL

Dans MySQL, lors de la création d'une table avec une colonne à incrémentation automatique , le comportement par défaut est que cette colonne soit également la clé primaire. Cependant, ce comportement peut entraîner des problèmes de performances si les requêtes identifient principalement des lignes utilisant une colonne différente.

Considérez le scénario suivant : vous créez une table avec une colonne nommée id comme clé primaire à incrémentation automatique et une autre colonne nommée memberid qui est unique et utilisé dans les requêtes pour identifier les membres. Dans ce cas, il serait idéal d'utiliser memberid comme clé primaire pour des raisons de performances, mais cela provoquerait une erreur :

1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
Copier après la connexion

Pour résoudre ce problème, la meilleure solution est de conserver la colonne id pour maintenir la fonctionnalité d'auto-incrémentation tout en définissant l'ID membre comme clé primaire. Ceci peut être réalisé en créant un index (clé) sur la colonne id, comme indiqué ci-dessous :

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)                          --- or:    UNIQUE KEY (id)
) ENGINE = MYISAM; 
Copier après la connexion

Cette approche vous permet de conserver la colonne à incrémentation automatique à des fins de performances tout en utilisant l'ID de membre comme principal. clé pour une interrogation efficace.

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