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

Definición de clave compuesta con incremento automático en MySQL

No puede hacer que MySQL haga esto por usted automáticamente para las tablas de InnoDB; necesitaría usar un disparador o procedimiento, o usar otro motor de base de datos como MyISAM. El incremento automático solo se puede realizar para una sola clave principal.

Algo como lo siguiente debería funcionar

DELIMITER $$

CREATE TRIGGER xxx BEFORE INSERT ON issue_log
FOR EACH ROW BEGIN
    SET NEW.sr_no = (
       SELECT IFNULL(MAX(sr_no), 0) + 1
       FROM issue_log
       WHERE app_id  = NEW.app_id
         AND test_id = NEW.test_id
    );
END $$

DELIMITER ;