Maison > base de données > tutoriel mysql > Comment créer une clé primaire à incrémentation automatique avec un préfixe dans MySQL ?

Comment créer une clé primaire à incrémentation automatique avec un préfixe dans MySQL ?

DDD
Libérer: 2024-12-17 16:32:15
original
1014 Les gens l'ont consulté

How to Create an Auto-Incrementing Primary Key with a Prefix in 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 :

  1. Créer la table de séquençage :

    CREATE TABLE table1_seq
    (
      id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
    );
    Copier après la connexion
  2. 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)
    );
    Copier après la connexion
  3. 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 ;
    Copier après la connexion

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

Le résultat dans la table table1 sera :

|      ID | NAME |
------------------
| LHPL001 | Jhon |
| LHPL002 | Mark |
Copier après la connexion

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal