sql >> Databáze >  >> RDS >> Mysql

MySQL Time Based Trigger

S vaším kódem je mnoho problémů:

  • Použijte oddělovač, jak je vysvětleno v Definování uložených Programy
  • nesmí být žádné S na konci DAY v ON SCHEDULE EVERY 15 DAY jak je vysvětleno v syntaxe CREATE EVENT
  • Dokumentace říká:„Stejně jako u uložených rutin můžete použít syntaxi složených příkazů v klauzuli DO pomocí klíčových slov BEGIN a END“, takže BEGIN klíčové slovo musí být přidáno za první DO
  • každý příkaz musí být oddělen středníkem
  • Syntaxe WHILE říká, že kód musí být uzavřen mezi WHILE search_condition DO a END WHILE
  • ve vašem INSERT , day je pole:uzavřete jej do zpětných znamének, nikoli do uvozovek

Pevný kód :

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 ;

Doporučuji, abyste si přečetli odkazy, které jsem uvedl ve své odpovědi. Pokud budete mít v budoucnu problém, nahlédněte do oficiální dokumentace:zde uvedené informace jsou přesné a aktuální a téměř vždy obsahují mnoho příkladů, které pomohou pochopit použitou syntaxi.




  1. Jak udělit všechna oprávnění k pohledům libovolnému uživateli

  2. Jak vybrat pouze 1 položku podřízené tabulky pro každý nadřazený záznam?

  3. Jak získat přístup k MySQL pomocí kořenového uživatele MySQL

  4. aktualizace sloupců s pořadovým číslem mysql