code

phpmyadmin sql 명령에서 작동하는 동안 이벤트 구문 오류가 발생했습니다.

starcafe 2023. 8. 11. 22:26
반응형

phpmyadmin sql 명령에서 작동하는 동안 이벤트 구문 오류가 발생했습니다.

랭킹에서 삭제; ALTERTABLE 랭킹 AUTO_INCREMENT = 1; 랭킹에 삽입(추가) 순위 설명 제한 100의 순서로 플레이어에서 사용자 이름을 선택합니다;

이것은 내가 10분마다 실행하고 싶은 명령이며, 나는 상위 100명의 플레이어를 지속적으로 저장해야 하는 테이블을 가지고 있습니다.그리고 sql 명령줄에 명령어를 입력하면 작동이 잘 됩니다.그러나 동일한 명령을 사용하여 이벤트에서 실행하려는 순간 이 오류가 나타납니다.

enter image description here

어쩌면 제가 사건의 한계를 이해하지 못하는 것일 수도 있습니다. 누군가 제가 무엇을 잘못하고 있는지 말해줄 수 있나요?안타깝게도 저는 Maria Db. 10.1.48을 실행하는 서버를 사용하고 있어서 Rank()와 같은 새로운 Windows 기능을 사용할 수 없습니다.

세 개의 SQL 문을 사용하여 이벤트를 정의하는 것처럼 보이지만 다음을 사용하지 않습니다.BEGIN ... END그들 주변을 차단합니다.이벤트에 여러 개의 문이 있는 경우 BEGIN과 END를 사용해야 합니다.

따라서 이벤트 정의는 다음과 같습니다.

CREATE EVENT ...
DO BEGIN
  DELETE FROM Ranking; 
  ALTER TABLE Ranking AUTO_INCREMENT = 1; 
  INSERT INTO Ranking (username) select username from Players order by rank desc LIMIT 100;
END

는 읽기를 추천합니다: https://mariadb.com/kb/en/begin-end

나는 또한 당신이 처음 두 개의 진술을 대체할 수 있다는 것을 언급할 것입니다.TRUNCATE TABLE Ranking;모든 행을 삭제하고 사용하는 것보다 더 빨리 자동 검색을 재설정합니다.DELETE표에 행이 100개만 있으면 차이를 알아차리지 못할 수 있지만 표가 커지면 차이가 날 수 있습니다.

언급URL : https://stackoverflow.com/questions/68457423/phpmyadmin-event-syntax-error-while-it-works-on-the-sql-command

반응형