Maison >base de données >tutoriel mysql >Comment générer automatiquement des clés primaires personnalisées avec un préfixe dans MySQL ?

Comment générer automatiquement des clés primaires personnalisées avec un préfixe dans MySQL ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-25 12:36:09224parcourir

How to Automatically Generate Custom Primary Keys with a Prefix in MySQL?

Clés primaires personnalisées avec incrémentation automatique du préfixe

Dans la conception de bases de données, il est courant d'exiger des clés primaires personnalisées qui suivent un format spécifique, tel que comme dans ce cas où le champ ID doit être incrémenté dans le formulaire 'LHPL001', 'LHPL002', 'LHPL003'.

Solution 1 : Tableau de déclenchement et de séquence

Cette approche utilise une table séparée pour générer des séquences et un déclencheur pour attribuer ces séquences à de nouvelles enregistrements.

Mise en œuvre :

  1. Créer une table de séquence :
CREATE TABLE table1_seq (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
);
  1. Créer principal Tableau :
CREATE TABLE table1 (
  id VARCHAR(7) NOT NULL PRIMARY KEY DEFAULT '0',
  name VARCHAR(30)
);
  1. Créer un 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, de nouvelles lignes insérées dans le table1 générera automatiquement un numéro de séquence préfixé par « LHPL » dans l'identifiant champ.

Exemple :

INSERT INTO Table1 (name) 
VALUES ('Jhon'), ('Mark');

Résultat :

ID NAME
LHPL001 Jhon
LHPL002 Mark

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!

Déclaration:
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