Maison >base de données >tutoriel mysql >Comment créer des clés primaires à incrémentation automatique avec des préfixes dans MySQL ?

Comment créer des clés primaires à incrémentation automatique avec des préfixes dans MySQL ?

DDD
DDDoriginal
2024-12-20 01:28:10831parcourir

How to Create Auto-Incrementing Primary Keys with Prefixes in 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!

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