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
DDDoriginal
2024-12-17 16:32:151005parcourir

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
    );
  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)
    );
  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 ;

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');

Le résultat dans la table table1 sera :

|      ID | NAME |
------------------
| LHPL001 | Jhon |
| LHPL002 | Mark |

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!

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