Czy możliwe jest uruchomienie wyzwalacza mysql zarówno dla zdarzeń wstawiania, jak i aktualizacji tabeli?
Wiem, że mogę wykonać następujące czynności
CREATE TRIGGER my_trigger
AFTER INSERT ON `table`
FOR EACH ROW
BEGIN
.....
END //
CREATE TRIGGER my_trigger
AFTER UPDATE ON `table`
FOR EACH ROW
BEGIN
.....
END //
Ale jak mam to zrobić
CREATE TRIGGER my_trigger
AFTER INSERT ON `table` AND
AFTER UPDATE ON `table`
FOR EACH ROW
BEGIN
.....
Czy to możliwe, czy muszę użyć 2 wyzwalaczy? Kod jest taki sam dla obu i nie chcę go powtarzać.
W odpowiedzi na żądanie @Zxaos, ponieważ nie możemy mieć operatorów AND / OR dla wyzwalaczy MySQL, zaczynając od kodu, poniżej znajduje się kompletny przykład, aby osiągnąć to samo.
1. Zdefiniuj wyzwalacz INSERT:
2. Zdefiniuj wyzwalacz UPDATE
3. Zdefiniuj wspólną PROCEDURĘ używaną przez oba te wyzwalacze:
Zauważasz, że dbam o przywrócenie separatora, kiedy skończę z definiowaniem wyzwalaczy i procedur w mojej firmie.
źródło
IN table_row_id VARCHAR(255)
w tym przypadku? Mam na myśli, jak definiujesz, który wiersz zostanie wstawiony lub zaktualizowany?niestety nie możemy używać w MySQL po opisie INSERT lub UPDATE , jak w Oracle
źródło