首頁  >  文章  >  資料庫  >  為什麼我的 MySQL 事件會建立失敗並顯示「您的 SQL 語法有錯誤」?

為什麼我的 MySQL 事件會建立失敗並顯示「您的 SQL 語法有錯誤」?

Patricia Arquette
Patricia Arquette原創
2024-11-09 22:47:02728瀏覽

Why Is My MySQL Event Creation Failing with

使用 PHP 排除 MySQL 事件錯誤

原始錯誤:

嘗試使用 PHP 腳本建立 MySQL事件時,一個錯誤發生:

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 

解決方案:

錯誤訊息表示用於建立事件的語法不正確。建立事件的正確語法是:

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

在原始錯誤中,錯誤地使用了「DELIMITER」語句。正確的語法是:

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

5 分鐘後更改資料庫數據的替代方法:

如果無法使用事件來更改資料庫數據,則有其他方法可以實現此功能:

  • Cron作業: 建立一個cron作業,每 5 分鐘執行一次必要的 SQL 語句。
  • 後台服務: 開發一個後台服務,負責監控資料庫並執行需要時進行必要的更新。
  • 觸發器:在表格上設定觸發器,當指定條件時將執行必要的 SQL 語句滿足(例如,使用者操作後 5 分鐘)。

事件處理程序啟動:

為了確保事件執行,事件處理程序必須使用以下語句開啟:

SET GLOBAL event_scheduler = ON;

您必須使用以下語句開啟:

SHOW VARIABLES WHERE VARIABLE_NAME='event_scheduler';

您必須使用以下語句開啟:

您必須使用以下語句開啟:
  • 您必須使用以下語句開啟:
  • 附加說明:ON COMPLETION 子句指定事件完成執行後應該發生的情況。 PRESERVE 選項表示事件在執行後將繼續存在,而 NOT PRESERVE 選項表示事件執行完成後將被刪除。 ALTER EVENT 語句可用於停用或啟用一個活動。

以上是為什麼我的 MySQL 事件會建立失敗並顯示「您的 SQL 語法有錯誤」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn