Sé que es tarde, pero solo quiero compartir lo que he hecho al respecto. No puedo agregar otra tabla o activador, por lo que necesito generarlo en una sola consulta al insertarlo. Para su caso, ¿puede probar esta consulta?
CREATE TABLE YOURTABLE(
IDNUMBER VARCHAR(7) NOT NULL PRIMARY KEY,
ENAME VARCHAR(30) not null
);
Realice una selección y use esta consulta de selección y guárdela en el parámetro @IDNUMBER
(SELECT IFNULL
(CONCAT('LHPL',LPAD(
(SUBSTRING_INDEX
(MAX(`IDNUMBER`), 'LHPL',-1) + 1), 5, '0')), 'LHPL001')
AS 'IDNUMBER' FROM YOURTABLE ORDER BY `IDNUMBER` ASC)
Y luego Insertar consulta será:
INSERT INTO YOURTABLE(IDNUMBER, ENAME) VALUES
(@IDNUMBER, 'EMPLOYEE NAME');
El resultado será el mismo que el de la otra respuesta, pero la diferencia es que no necesitará crear otra tabla o activador. Espero poder ayudar a alguien que tenga el mismo caso que el mío.