Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Tworzenie wyzwalacza do aktualizacji kolumny sortowania/porządkowania

Myślę, że obejściem jest uczynienie tego przed wyzwalaczem i zaktualizowanie wstawianego rekordu przed wstawieniem.

Więc

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

To było szybkie kopiowanie/wklejanie, ale powinno to być coś w tym stylu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Skrypt logowania nie działa zgodnie z wymaganiami

  2. Używanie SQL LIKE i IN razem

  3. Błąd w instrukcji SQL przy użyciu kolumny INSERT i AUTO-INCREMENT

  4. Nie można utworzyć wielu niestandardowych tabel db po aktywacji wtyczki wp

  5. Jak zmniejszyć/wyczyścić plik ibdata1 w MySQL?