sql >> Databasteknik >  >> RDS >> Mysql

Skapar en utlösare för att uppdatera en sorterings-/ordningskolumn

Jag tror att lösningen är att göra detta till en före trigger och uppdatera själva posten som infogas innan den infogas.

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 snabb kopiering/klistra in, men det borde vara något i den stilen.



  1. Hur hämtar man nästa objekt i en lista med MySQL-poster?

  2. Hur kan jag söka i en tabell med kommaseparerade värden?

  3. Hur startar man om fjärrstyrd MySQL-server som körs på Ubuntu linux?

  4. SQL Agent Job:Bestäm hur länge det har körts