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

Definizione della chiave composita con incremento automatico in MySQL

Non puoi fare in modo che MySQL lo esegua automaticamente per le tabelle InnoDB:dovresti utilizzare un trigger o una procedura o utilizzare un altro motore DB come MyISAM. L'incremento automatico può essere eseguito solo per una singola chiave primaria.

Qualcosa come il seguente dovrebbe funzionare

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 ;