Mysql
 sql >> Database >  >> RDS >> Mysql

Come aumentare automaticamente la chiave primaria della tabella MySQL con un prefisso

Se ne hai davvero bisogno, puoi raggiungere il tuo obiettivo con l'aiuto di una tabella separata per il sequenziamento (se non ti dispiace) e un trigger.

Tabelle

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

Ora il grilletto

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 ;

Quindi inserisci semplicemente le righe nella tabella1

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

E avrai

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

Ecco SQLFiddle demo