Automatisch inkrementierender Primärschlüssel mit Präfix in MySQL
Benötigt wird ein automatisch inkrementierender Primärschlüssel mit einem angegebenen Präfix, z. B. „ LHPL001“, „LHPL002“ usw.? Hier ist eine kurze Anleitung, um dies in MySQL zu erreichen.
Ein Ansatz besteht darin, eine separate Sequenzierungstabelle und einen Trigger zu verwenden, um das gewünschte Präfix zu generieren. Unten sind die Schritte:
Erstellen Sie die Sequenzierungstabelle:
CREATE TABLE table1_seq ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY );
Erstellen Sie die Zieltabelle mit einer einfachen VARCHAR-Primärdatei Schlüssel:
CREATE TABLE table1 ( id VARCHAR(7) NOT NULL PRIMARY KEY DEFAULT '0', name VARCHAR(30) );
Erstellen Sie den Auslöser:
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 können Sie kann jetzt Zeilen in Tabelle1 einfügen, und der Trigger generiert automatisch die vorangestellte Primärdatei Schlüssel:
INSERT INTO Table1 (name) VALUES ('Jhon'), ('Mark');
Das Ergebnis in der Tabelle Tabelle1 lautet:
| ID | NAME | ------------------ | LHPL001 | Jhon | | LHPL002 | Mark |
Eine interaktive Demonstration dieses Ansatzes finden Sie in der bereitgestellten SQLFiddle-Demo.
Das obige ist der detaillierte Inhalt vonWie erstelle ich einen automatisch inkrementierenden Primärschlüssel mit einem Präfix in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!