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

Wyzwalacz czasowy MySQL

Istnieje wiele problemów z Twoim kodem:

  • Użyj separatora, jak wyjaśniono w Definiowanie zapisanych Programy
  • nie może być S pod koniec DAY w ON SCHEDULE EVERY 15 DAY jak wyjaśniono w CREATE EVENT Składnia
  • Dokumentacja mówi:„Podobnie jak w przypadku procedur przechowywanych, możesz użyć składni złożonej instrukcji w klauzuli DO, używając słów kluczowych BEGIN i END”, więc BEGIN słowo kluczowe musi być dodane po pierwszym DO
  • każda instrukcja musi być oddzielona średnikiem
  • WHILE Składnia mówi, że kod musi być ujęty między WHILE search_condition DO i END WHILE
  • w swoim INSERT , day jest polem:umieść je w backtickach, a nie w cudzysłowie

Stały kod :

DELIMITER $$$
CREATE EVENT autoDayInsert ON SCHEDULE EVERY 15 DAY DO BEGIN
    SET @dayCounter = 0;
    WHILE @dayCounter < 15 DO
        INSERT INTO appointmentDays(`day`) VALUES(NOW() + INTERVAL @dayCounter DAY);
        SET @dayCounter = @dayCounter +1;
    END WHILE;
END $$$
DELIMITER ;

Proponuję przeczytać linki, które podałem w mojej odpowiedzi. W przyszłości, gdy będziesz mieć problem, zapoznaj się z oficjalną dokumentacją:podane tam informacje są dokładne i aktualne i prawie zawsze zawierają wiele przykładów, które pomagają zrozumieć składnię, której należy użyć.




  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 mogę łatwo przekonwertować aplikację Django z mySQL na PostgreSQL?

  2. Mysql group_concat ogranicza wiersze w grupowaniu

  3. Dlaczego mysql_num_rows zwraca zero?

  4. Geokoder Google Maps do wyszukiwania miejsc w pobliżu z bazy danych MySQL

  5. Kolejny błąd UnicodeEncodeError podczas używania metody pandy to_sql z MySQL