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

Erstellen Sie einen Insert-Trigger, um das Int-Feld des zusammengesetzten PK (String, Int) automatisch zu inkrementieren, und starten Sie die Nummerierung bei 1 für neue Strings neu

Haben Sie versucht, stattdessen die Variable zu deklarieren?

DELIMITER $$
CREATE TRIGGER `co05_test`.`ins_lineItem`
BEFORE INSERT ON `co05_test`.`my_table`
FOR EACH ROW
BEGIN
DECLARE newLineItem INT; 
SELECT 
    lineItem + 1 into newLineItem 
FROM my_table 
WHERE batch = NEW.batch
ORDER BY lineItem DESC 
LIMIT 1;

SET NEW.lineItem = newLineItem;   
END$$