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

Oprettelse af en trigger for at opdatere en sorterings-/rækkefølgekolonne

Jeg tror, ​​at løsningen er at gøre dette til en før-trigger og opdatere selve posten, der indsættes, før indsættelse.

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;
$$

Det var en hurtig copy/paste, men det burde være noget i den retning.



  1. Sådan rollback dataframe.to_sql i python i SQLAlchemy?

  2. Hibernate og Oracle Sequence

  3. Sådan håndteres fragmentering af auto_increment ID-kolonnen i MySQL

  4. C# MySQL-parametre:? eller @