Maison >base de données >tutoriel mysql >Comment créer des clés primaires à incrémentation automatique avec des préfixes dans MySQL ?
Création de clés primaires auto-incrémentées avec préfixes dans MySQL
Lorsque vous travaillez avec des bases de données, il est souvent souhaitable d'avoir une clé primaire qui non seulement fournit un identifiant unique mais intègre également un préfixe significatif pour une organisation facile. Si vous disposez d'une table avec une colonne de clé primaire nommée « id » et que vous souhaitez l'incrémenter avec un préfixe tel que « LHPL001 », « LHPL002 », etc., voici une solution potentielle utilisant une table distincte pour le séquençage et un déclencheur :
Configuration de la table
Créez une table appelée table1_seq pour stocker la séquence nombres et une table appelée table1 pour stocker les données réelles, avec le champ de clé primaire souhaité :
CREATE TABLE table1_seq ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ); CREATE TABLE table1 ( id VARCHAR(7) NOT NULL PRIMARY KEY DEFAULT '0', name VARCHAR(30) );
Déclencheur pour l'incrémentation automatique préfixé
Pour générer le préfixe clés primaires, créez un déclencheur BEFORE INSERT sur la table1 :
DELIMITER $$ CREATE TRIGGER tg_table1_insert BEFORE INSERT ON table1 FOR EACH ROW BEGIN INSERT INTO table1_seq VALUES (NULL); SET NEW.id = CONCAT('LHPL', LPAD(LAST_INSERT_ID(), 3, '0')); END$$ DELIMITER ;
Insertion Données
Une fois le déclencheur en place, vous pouvez simplement insérer des lignes dans le tableau1 :
INSERT INTO table1 (name) VALUES ('Jhon'), ('Mark');
Résultat
Les données dans table1 aura désormais des clés primaires préfixées :
| ID | NAME | ------------------ | LHPL001 | Jhon | | LHPL002 | Mark |
Cette approche vous permet d'obtenir l'auto-incrémentation souhaitée comportement de clé primaire avec un préfixe significatif, simplifiant l'organisation et la récupération 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!