sql >> Databasteknik >  >> RDS >> Mysql

Mysql-utlösare för att uppdatera den infogade raden

Enligt kommentarer :)

Du behöver en BEFORE INSERT utlösare. I den utlösaren ändrar du posten innan den når permanent lagring. Med ditt exempel skulle denna utlösare definieras så här:

DELIMITER $$
CREATE TRIGGER moodle.update_lang
BEFORE INSERT
ON moodle.mdl_user FOR EACH ROW
BEGIN
   SET NEW.lang='hu';
END$$
DELIMITER ;

Anledningen till att du inte kan använda UPDATE på samma tabell som triggern refererar till beror på att det kan (och skulle) orsaka en oändlig loop.

Notera:Jag har inte testat detta, men av dina kommentarer att döma verkar det fungera. Lycka till!



  1. Hur uppdaterar man två tabeller i ett uttalande?

  2. MSSQL Reguljärt uttryck

  3. Hur man automatiserar distributionen av PostgreSQL-databasen

  4. Hur använder man flera WITH-satser i en PostgreSQL-fråga?