Maison > base de données > tutoriel mysql > Comment puis-je préfixer les clés primaires à incrémentation automatique dans MySQL ?

Comment puis-je préfixer les clés primaires à incrémentation automatique dans MySQL ?

Linda Hamilton
Libérer: 2024-12-14 00:45:17
original
868 Les gens l'ont consulté

How Can I Prefix Auto-Incrementing Primary Keys in MySQL?

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
);
Copier après la connexion

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)
);
Copier après la connexion

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 ;
Copier après la connexion

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');
Copier après la connexion

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 |
Copier après la connexion

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!

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