phpMyAdmin
 sql >> Baza danych >  >> Database Tools >> phpMyAdmin

Nie można utworzyć TRIGGERa z innej przechowywanej procedury — co to jest inna przechowywana procedura?

Spust, który pokazujesz powyżej, jest w porządku.

edytuj: Kiedy tworzysz wyzwalacz w GUI phpMyAdmin, wystarczy wprowadzić treść wyzwalacza w Definicji okienko, czyli część BEGIN...END .

Dzieje się tak, ponieważ phpMyAdmin będzie starał się być sprytny i napisać dla ciebie nagłówek wyzwalacza na podstawie innych wprowadzonych elementów (nazwa, tabela, godzina, wydarzenie).

Oto właściwy sposób zdefiniowania wyzwalacza w phpMyAdmin:

Jeśli napiszesz CREATE TRIGGER... nagłówek wewnątrz ciała, zmyli MySQL, ponieważ zobaczy CREATE TRIGGER... CREATE TRIGGER... BEGIN...END . To sprawia, że ​​MySQL myśli, że definiujesz wyzwalacz, którego pierwszą instrukcją jest CREATE TRIGGER .

Jako kwestię poboczną w twoim pierwotnym pytaniu sugeruję pewne zmiany w treści wyzwalacza:

CREATE TRIGGER Update_Last_Transit_Status AFTER INSERT ON Delivery 
FOR EACH ROW
BEGIN
  UPDATE Transportation
    INNER JOIN Transit ON Transit.Transportation_ID = Transportation.ID
    INNER JOIN Route ON Transit.ID = Route.Transit_ID
  SET Transportation.Status = 'Dispatched'
  WHERE Route.Delivery_ID = NEW.ID
    AND Transportation.Status = 'In Branch';
END

Zmiany:

  • Odniesienie NEW.ID zamiast Delivery.ID .
  • Użyj SQL-92 JOIN składnia zamiast sprzężeń w stylu przecinka SQL-89.
  • Użyj wielu tabel UPDATE ze złączeniami, zamiast EXISTS ze skorelowanym podzapytaniem.
  • Użyj pojedynczych cudzysłowów dla ciągów zamiast podwójnych cudzysłowów.
  • Zakończ UPDATE oświadczenie ze średnikiem.



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. MAMP - phpMyAdmin #2002 - Nie można połączyć się z lokalnym serwerem MySQL przez gniazdo '/Applications/MAMP/tmp/mysql/mysql.sock'

  2. Jak wyeksportować plik w formacie .dat lub .txt za pomocą php

  3. Błąd importu bazy danych mysql

  4. Jak wybrać wszystkie rekordy z tabeli poza ostatnimi 100

  5. Sortowanie zakładek SQL