ホームページ  >  記事  >  データベース  >  MySQL イベントの作成が「SQL 構文にエラーがあります」というメッセージで失敗するのはなぜですか?

MySQL イベントの作成が「SQL 構文にエラーがあります」というメッセージで失敗するのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-09 22:47:02720ブラウズ

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 job: 必要な SQL ステートメントを 5 分ごとに実行する cron ジョブを作成します。
  • バックグラウンド サービス: データベースの監視と実行を担当するバックグラウンド サービスを開発します。必要なときに必要な更新を行います。
  • トリガー: 必要なときに必要な SQL ステートメントを実行するトリガーをテーブルに設定します。指定された条件が満たされました (例: ユーザー アクションの 5 分後)。

イベント ハンドラーのアクティブ化:

イベントが確実に実行されるように、イベント ハンドラーは次のステートメントを使用してオンにする必要があります:

SET GLOBAL event_scheduler = ON;

イベント ハンドラーが有効であることは、次のコマンドで確認できます。 「event_scheduler」変数の値を確認しています:

SHOW VARIABLES WHERE VARIABLE_NAME='event_scheduler';

追加メモ:

  • ON COMPLETION 句は、イベントの終了後に何が起こるかを指定します。実行中。 PRESERVE オプションはイベントが実行後に存在し続けることを意味し、NOT PRESERVE オプションはイベントが実行終了後に削除されることを意味します。
  • ALTER EVENT ステートメントを使用して無効または有効にすることができます。イベント。

以上がMySQL イベントの作成が「SQL 構文にエラーがあります」というメッセージで失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。