>  기사  >  데이터 베이스  >  'SQL 구문에 오류가 있습니다.'라는 메시지와 함께 MySQL 이벤트 생성이 실패하는 이유는 무엇입니까?

'SQL 구문에 오류가 있습니다.'라는 메시지와 함께 MySQL 이벤트 생성이 실패하는 이유는 무엇입니까?

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 job: 5분마다 필요한 SQL 문을 실행하는 cron 작업을 생성합니다.
  • 백그라운드 서비스: 데이터베이스 모니터링과 작업 수행을 담당하는 백그라운드 서비스를 개발합니다. 필요한 경우 업데이트가 필요합니다.
  • 트리거: 지정된 조건이 충족될 때 필요한 SQL 문을 실행하는 테이블에 트리거를 설정합니다. (예: 사용자 작업 후 5분).

이벤트 핸들러 활성화:

이벤트가 실행되도록 하려면 이벤트 핸들러가 다음과 같아야 합니다. 다음 명령문을 사용하여 켰습니다.

SET GLOBAL event_scheduler = ON;

이벤트 핸들러가 활성화되었는지 확인하려면 'event_scheduler' 변수:

SHOW VARIABLES WHERE VARIABLE_NAME='event_scheduler';

추가 참고 사항:

  • ON COMPLETION 절은 이벤트 실행이 완료된 후 발생해야 하는 작업을 지정합니다. PRESERVE 옵션은 이벤트가 실행된 후에도 계속 존재함을 의미하고, NOT PRESERVE 옵션은 이벤트가 실행이 완료된 후 삭제된다는 것을 의미합니다.
  • ALTER EVENT 문을 사용하여 비활성화하거나 활성화할 수 있습니다. 이벤트입니다.

위 내용은 'SQL 구문에 오류가 있습니다.'라는 메시지와 함께 MySQL 이벤트 생성이 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.