sql >> Databasteknik >  >> RDS >> Mysql

Före / efter infoga utlösaren med fältet för automatisk ökning

Det enda sättet jag hittade för att få det nya inkrementvärdet är inte en fancy form. Jag antog att du infogar ett nytt värde, så det antas vara det maximala 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 fungerade för mitt fall, om det är NULL kommer det att få max ID + 1, vilket blir det nya ID:t.



  1. COUNT(*) från flera tabeller i MySQL

  2. En expertguide till Slony-replikering för PostgreSQL

  3. PostgreSQL 9.3:Dela en kolumn i flera

  4. Postgres - Hur anropar man automatiskt ST_SetSRID(ST_MakePoint(lng, lat), 4326) på inlägg?