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

Før / efter indsæt trigger ved hjælp af feltet for automatisk inkrement

Den eneste måde, jeg fandt på at få den nye stigningsværdi, er ikke en fancy formular. Jeg gik ud fra, at du indsætter en ny værdi, så det antages at være det maksimale id + 1:

CREATE TRIGGER mytrigger BEFORE INSERT ON yourtable 
FOR EACH ROW BEGIN
SET NEW.thread_id = IF(
ISNULL(NEW.thread_id), 
(SELECT MAX(id) + 1 FROM yourtable), 
NEW.thread_id);
END;

Det fungerede for mit tilfælde, hvis det er NULL vil det få max ID + 1, som vil være det nye id.



  1. Når mysql WHERE-klausulen er tom, returneres alle rækker

  2. Sådan filtreres poster med aggregatfunktion AVG

  3. PostgreSQL hvordan man kan se hvilke forespørgsler der er kørt

  4. MySql - Opret visning til at læse fra flere tabeller