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

Création d'un déclencheur pour mettre à jour une colonne de tri/ordre

Je pense que la solution consiste à en faire un déclencheur avant et à mettre à jour l'enregistrement en cours d'insertion avant l'insertion.

Alors

CREATE
/*!50017 DEFINER = 'admin'@'%' */
TRIGGER `trigger_liability_detail_after_insert` BEFORE INSERT ON `liability_detail` 
    FOR EACH ROW BEGIN
    DECLARE SortOrder INT;
    IF NEW.liability_category_id = 1 OR NEW.liability_category_id = 2 THEN

    SET NEW.seq = 1 + IFNULL((SELECT MAX(seq) FROM liability_detail WHERE analysis_id = new.analysis_id AND liability_category_id IN (1, 2)), 0);
    END IF;
    END;
$$

C'était un copier/coller rapide, mais ça devrait être quelque chose dans ce sens.