sql >> Database >  >> RDS >> Mysql

Een trigger maken om een ​​sorteer-/volgordekolom bij te werken

Ik denk dat de oplossing is om dit een vóór-trigger te maken en het record dat wordt ingevoegd bij te werken voordat het wordt ingevoegd.

Dus

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

Dat was even kopiëren/plakken, maar het zou iets in die richting moeten zijn.



  1. mysql twee kolommen primaire sleutel met automatische verhoging

  2. Hoe integer naar serieel te converteren

  3. Databaseversiebeheer voor MySQL

  4. MySQL ORDER BY Datumveld dat geen datumnotatie heeft