Mysql
 sql >> Base de données >  >> RDS >> Mysql

Définition d'une clé composite avec incrémentation automatique dans MySQL

Vous ne pouvez pas demander à MySQL de le faire automatiquement pour vous pour les tables InnoDB - vous auriez besoin d'utiliser un déclencheur ou une procédure, ou d'utiliser un autre moteur de base de données tel que MyISAM. L'incrémentation automatique ne peut être effectuée que pour une seule clé primaire.

Quelque chose comme ce qui suit devrait fonctionner

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 ;