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:
CREATE TABLE table1_seq ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY );
CREATE TABLE table1 ( id VARCHAR(7) NOT NULL PRIMARY KEY DEFAULT '0', name VARCHAR(30) );
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!