Maison >base de données >tutoriel mysql >Comment créer une clé primaire à incrémentation automatique avec un préfixe dans MySQL ?
Clé primaire à incrémentation automatique avec préfixe dans MySQL
Besoin d'une clé primaire à incrémentation automatique avec un préfixe spécifié, tel que ' LHPL001', 'LHPL002', etc. ? Voici un guide concis pour y parvenir dans MySQL.
Une approche consiste à utiliser une table de séquençage distincte et un déclencheur pour générer le préfixe souhaité. Voici les étapes :
Créer la table de séquençage :
CREATE TABLE table1_seq ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY );
Créer la table cible avec un primaire VARCHAR simple clé :
CREATE TABLE table1 ( id VARCHAR(7) NOT NULL PRIMARY KEY DEFAULT '0', name VARCHAR(30) );
Créez le déclencheur :
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 ;
Avec cette configuration, vous peut maintenant insérer des lignes dans la table1, et le déclencheur générera automatiquement le primaire préfixé clé :
INSERT INTO Table1 (name) VALUES ('Jhon'), ('Mark');
Le résultat dans la table table1 sera :
| ID | NAME | ------------------ | LHPL001 | Jhon | | LHPL002 | Mark |
Référez-vous à la démo SQLFiddle fournie pour une démonstration interactive de cette approche.
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!