Heim >Datenbank >MySQL-Tutorial >Wie generiert man automatisch benutzerdefinierte Primärschlüssel mit einem Präfix in MySQL?

Wie generiert man automatisch benutzerdefinierte Primärschlüssel mit einem Präfix in MySQL?

Barbara Streisand
Barbara StreisandOriginal
2024-12-25 12:36:09264Durchsuche

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

Benutzerdefinierte Primärschlüssel mit automatischer Präfix-Inkrementierung

Beim Datenbankdesign ist es üblich, benutzerdefinierte Primärschlüssel zu erfordern, die einem bestimmten Format folgen, z wie in diesem Fall, wo das ID-Feld im Formular erhöht werden muss 'LHPL001', 'LHPL002', 'LHPL003'.

Lösung 1: Trigger- und Sequenztabelle

Dieser Ansatz verwendet eine separate Tabelle zum Generieren von Sequenzen und einen Trigger dazu Ordnen Sie diese Sequenzen neu zu Datensätze.

Implementierung:

  1. Sequenztabelle erstellen:
CREATE TABLE table1_seq (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
);
  1. Haupt erstellen Tabelle:
CREATE TABLE table1 (
  id VARCHAR(7) NOT NULL PRIMARY KEY DEFAULT '0',
  name VARCHAR(30)
);
  1. Auslöser erstellen:
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 ;

Mit diesem Setup werden neue Zeilen in die eingefügt table1 generiert automatisch eine Sequenznummer mit dem Präfix „LHPL“ in der ID Feld.

Beispiel:

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

Ergebnis:

ID NAME
LHPL001 Jhon
LHPL002 Mark

Das obige ist der detaillierte Inhalt vonWie generiert man automatisch benutzerdefinierte Primärschlüssel mit einem Präfix in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn