sql >> Base de Datos >  >> RDS >> Mysql

Cómo hacer que la clave principal de la tabla MySQL se incremente automáticamente con algún prefijo

Si realmente necesita esto, puede lograr su objetivo con la ayuda de una tabla separada para secuenciar (si no le importa) y un disparador.

Mesas

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

Ahora el gatillo

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 ;

Luego simplemente inserta filas en la tabla 1

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

Y tendrás

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

Aquí está SQLFiddle demostración