Heim >Datenbank >MySQL-Tutorial >Wie kann ich automatisch inkrementierende Primärschlüssel in MySQL voranstellen?
Automatisch inkrementierende Primärschlüssel in MySQL voranstellen
Als Datenbankadministrator kann es vorkommen, dass Sie Ihren automatisch inkrementierenden Primärschlüsseln ein Präfix voranstellen möchten. Inkrementieren von Primärschlüsseln mit einem bestimmten Wert. In diesem Leitfaden untersuchen wir eine Lösung mit einer separaten Sequenzierungstabelle und einem Trigger.
Erstellen der Sequenzierungstabelle
Erstellen Sie zunächst eine Tabelle, um die Sequenzwerte zu generieren :
CREATE TABLE table1_seq ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY );
Hauptseite erstellen Tabelle
Als nächstes erstellen Sie Ihre Haupttabelle mit der Primärschlüsselspalte unter Verwendung des Typs VARCHAR und unter Angabe des Standardwerts „0“:
CREATE TABLE table1 ( id VARCHAR(7) NOT NULL PRIMARY KEY DEFAULT '0', name VARCHAR(30) );
Trigger für Präfixierung der Primärschlüssel
Um den Präfixwert für den Primärschlüssel festzulegen, erstellen Sie einen Trigger, der vor jedem Einfügevorgang auf dem Hauptschlüssel ausgelöst wird Tabelle:
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 ;
Daten in die Haupttabelle einfügen
Jetzt können Sie Daten in die Haupttabelle einfügen, ohne den Primärschlüsselwert anzugeben. Der Trigger generiert automatisch die IDs und stellt ihnen ein Präfix voran:
INSERT INTO Table1 (name) VALUES ('Jhon'), ('Mark');
Ausgabe
Beim Einfügen von Daten zeigt die Tabelle die folgenden Datensätze mit den vorangestellten Primärschlüsseln an:
| ID | NAME | ------------------ | LHPL001 | Jhon | | LHPL002 | Mark |
SQLFiddle-Demonstration
Für eine praktische Zur Demonstration können Sie sich die SQLFiddle-Demo hier ansehen: [Link]
Das obige ist der detaillierte Inhalt vonWie kann ich automatisch inkrementierende Primärschlüssel in MySQL voranstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!