Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Definindo chave composta com incremento automático no MySQL


Você não pode fazer com que o MySQL faça isso automaticamente para tabelas InnoDB - você precisaria usar um gatilho ou procedimento, ou usar outro mecanismo de banco de dados, como MyISAM. O incremento automático só pode ser feito para uma única chave primária.

Algo como o seguinte deve 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 ;