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
Freigeben: 2024-12-25 12:36:09
Original
230 Leute haben es durchsucht

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
);
Nach dem Login kopieren
  1. Haupt erstellen Tabelle:
CREATE TABLE table1 (
  id VARCHAR(7) NOT NULL PRIMARY KEY DEFAULT '0',
  name VARCHAR(30)
);
Nach dem Login kopieren
  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 ;
Nach dem Login kopieren

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');
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage