Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie man den Primärschlüssel der MySQL-Tabelle mit einem Präfix automatisch inkrementiert

Wenn Sie das wirklich brauchen, können Sie Ihr Ziel mit Hilfe einer separaten Tabelle für die Sequenzierung (wenn Sie nichts dagegen haben) und einem Trigger erreichen.

Tabellen

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)
);

Jetzt der 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 ;

Dann fügen Sie einfach Zeilen in Tabelle1

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

Und Sie haben

|      ID | NAME |
------------------
| LHPL001 | Jhon |
| LHPL002 | Mark |

Hier ist SQLFiddle Demo