Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Zusammengesetzten Schlüssel mit automatischem Inkrement in MySQL definieren

Sie können MySQL dies nicht automatisch für InnoDB-Tabellen erledigen lassen – Sie müssten einen Trigger oder eine Prozedur verwenden oder eine andere DB-Engine wie MyISAM verwenden. Die automatische Erhöhung kann nur für einen einzelnen Primärschlüssel durchgeführt werden.

So etwas wie das Folgende sollte funktionieren

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 ;