Préfixage des clés primaires à incrémentation automatique dans MySQL
En tant qu'administrateur de base de données, vous pouvez rencontrer une situation dans laquelle vous souhaitez préfixer votre auto- incrémenter les clés primaires avec une valeur spécifique. Dans ce guide, nous explorerons une solution utilisant une table de séquençage distincte et un déclencheur.
Création de la table de séquençage
Tout d'abord, créez une table pour générer les valeurs de séquence :
CREATE TABLE table1_seq ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY );
Création du principal Table
Ensuite, créez votre table principale avec la colonne de clé primaire en utilisant le type VARCHAR et en spécifiant une valeur par défaut de '0' :
CREATE TABLE table1 ( id VARCHAR(7) NOT NULL PRIMARY KEY DEFAULT '0', name VARCHAR(30) );
Déclencheur pour le préfixage la clé primaire
Pour définir la valeur préfixée de la clé primaire, créez un déclencheur qui se déclenche avant chaque opération d'insertion sur la table principale :
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 de données dans la table principale
Maintenant, vous pouvez insérer des données dans la table principale sans spécifier la valeur de la clé primaire. Le déclencheur générera et préfixera automatiquement les ID :
INSERT INTO Table1 (name) VALUES ('Jhon'), ('Mark');
Sortie
Lors de l'insertion des données, le tableau affichera les enregistrements suivants avec les clés primaires préfixées :
| ID | NAME | ------------------ | LHPL001 | Jhon | | LHPL002 | Mark |
Démonstration SQLFiddle
Pour une démonstration pratique, vous pouvez vous référer à la démo SQLFiddle ici : [link]
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!