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

Wyzwalacz Mysql do aktualizacji wstawionego wiersza

Zgodnie z komentarzami :)

Potrzebujesz BEFORE INSERT cyngiel. W tym wyzwalaczu zmieniasz rekord, zanim dotrze on do trwałej pamięci. Korzystając z twojego przykładu, ten wyzwalacz zostałby zdefiniowany w następujący sposób:

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

Powód, dla którego nie możesz użyć UPDATE w tej samej tabeli, do której odnosi się wyzwalacz, ponieważ może to (i spowodowałoby) nieskończoną pętlę.

Uwaga:nie testowałem tego, ale sądząc po twoich komentarzach, wydaje się, że działa. Powodzenia!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP:Zapytanie PDO nie zwraca żadnych wyników, ale to samo zapytanie zwraca 4 wyniki w phpmyadmin?

  2. Pobieranie danych z listy rozwijanej wielokrotnego wyboru za pomocą PHP do wstawienia do MySQL

  3. Konwertuj BIGINT UNSIGNED na INT

  4. Najlepsze wyniki „n” dla każdego słowa kluczowego

  5. konwertuj znaczniki czasu epoki Unix na znaczniki czasu JavaScript