Heim  >  Artikel  >  Datenbank  >  Warum schlägt die Erstellung meines MySQL-Ereignisses mit der Meldung „Sie haben einen Fehler in Ihrer SQL-Syntax' fehl?

Warum schlägt die Erstellung meines MySQL-Ereignisses mit der Meldung „Sie haben einen Fehler in Ihrer SQL-Syntax' fehl?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-09 22:47:02719Durchsuche

Why Is My MySQL Event Creation Failing with

Fehlerbehebung bei MySQL-Ereignisfehlern mit PHP

Ursprünglicher Fehler:

Beim Versuch, ein MySQL-Ereignis mit einem PHP-Skript zu erstellen , ein Fehler ist aufgetreten:

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DELIMITER' at line 1 

Lösung:

Die Fehlermeldung weist darauf hin, dass die zum Erstellen des Ereignisses verwendete Syntax falsch ist. Die korrekte Syntax zum Erstellen eines Ereignisses lautet:

CREATE EVENT event_name
ON SCHEDULE [EVERY | AT] schedule
[ON COMPLETION [PRESERVE | NOT PRESERVE]]
DO
  statement(s);

Im ursprünglichen Fehler wurde die „DELIMITER“-Anweisung falsch verwendet. Die korrekte Syntax wäre:

CREATE EVENT myevent21222
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 MINUTE
DO
  BEGIN
    UPDATE `team` SET `reg` = '0' WHERE `id` = '1';
  END

Alternative zum Ändern von Datenbankdaten nach 5 Minuten:

Wenn die Verwendung eines Ereignisses zum Ändern von Datenbankdaten keine Option ist, finden Sie hier Es gibt andere Möglichkeiten, diese Funktionalität zu erreichen:

  • Cron-Job: Erstellen Sie einen Cron-Job, der alle 5 Minuten die erforderliche SQL-Anweisung ausführt.
  • Hintergrunddienst: Entwickeln Sie einen Hintergrunddienst, der für die Überwachung der Datenbank und die Durchführung der erforderlichen Aktualisierungen bei Bedarf verantwortlich ist.
  • Trigger: Richten Sie einen Trigger für die Tabelle ein, der ausgeführt wird die erforderliche SQL-Anweisung, wenn die angegebene Bedingung erfüllt ist (z. B. 5 Minuten nach einer Benutzeraktion).

Aktivierung des Ereignishandlers:

Um sicherzustellen, dass Ereignisse auftreten ausgeführt werden, muss der Event-Handler mit der folgenden Anweisung aktiviert werden:

SET GLOBAL event_scheduler = ON;

Sie können bestätigen, dass der Event-Handler aktiviert ist, indem Sie den Wert der Variable „event_scheduler“ überprüfen:

SHOW VARIABLES WHERE VARIABLE_NAME='event_scheduler';

Zusätzliche Hinweise:

  • Die ON COMPLETION-Klausel gibt an, was passieren soll, nachdem die Ausführung des Ereignisses abgeschlossen ist. Die PRESERVE-Option bedeutet, dass das Ereignis nach seiner Ausführung weiterhin bestehen bleibt, während die NOT PRESERVE-Option bedeutet, dass das Ereignis gelöscht wird, sobald die Ausführung abgeschlossen ist.
  • Die ALTER EVENT-Anweisung kann zum Deaktivieren oder Aktivieren verwendet werden ein Ereignis.

Das obige ist der detaillierte Inhalt vonWarum schlägt die Erstellung meines MySQL-Ereignisses mit der Meldung „Sie haben einen Fehler in Ihrer SQL-Syntax' fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn