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

Błąd składni wyzwalacza MYSQL

Aby Twój klient MySQL nie interpretował ; która kończy INSERT instrukcja jako koniec CREATE TRIGGER oświadczenie, musisz poinformować go, że chcesz użyć innego ogranicznika oświadczenia.

W mysql klienta wiersza poleceń, możesz to zrobić za pomocą DELIMITER polecenie . Na przykład, aby zmienić ogranicznik wyciągu na podwójny średnik:

DELIMITER ;;

Następnie możesz zrobić:

CREATE TRIGGER LOG_UPDATE BEFORE UPDATE ON WORKLOG FOR EACH ROW BEGIN
  INSERT INTO WORKLOG_BACKUP VALUES (
    NULL,
    CURRENT_TIMESTAMP,
    NEW.LOGNO,
    NEW.JOBNO,
    NEW.EMPLOYEENO,
    NEW.WORKDATE,
    NEW.WORKTIME,
    'UPDATE'
  );
END;;

Jednak ponieważ w tym przypadku wyzwalacz zawiera tylko jedną instrukcję, nie musisz używać BEGIN ... END blok instrukcji złożonych i dlatego może całkowicie uniknąć zmiany ograniczników:

CREATE TRIGGER LOG_UPDATE BEFORE UPDATE ON WORKLOG FOR EACH ROW
  INSERT INTO WORKLOG_BACKUP VALUES (
    NULL,
    CURRENT_TIMESTAMP,
    NEW.LOGNO,
    NEW.JOBNO,
    NEW.EMPLOYEENO,
    NEW.WORKDATE,
    NEW.WORKTIME,
    'UPDATE'
  )
;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wybrać datę z kolumny datetime?

  2. Zapytanie przestawne MySQL

  3. OBLICZ PROCENT W SQL według grupy

  4. Jak przechowywać pliki .txt w bazie danych MySQL?

  5. obraz nie jest pobierany z bazy danych przy użyciu ścieżki