phpmyadmin - phpmyadmin 事件语法错误,而它适用于 sql 命令
问题描述
从排名中删除;ALTER TABLE 排名 AUTO_INCREMENT = 1; INSERT INTO Ranking (username) select username from Players order by rank desc LIMIT 100;
这是我想每 10 分钟执行一次的命令,我有一个应该不断存储前 100 名玩家的表。如果我将命令输入到 sql 命令行中,它工作正常。但是,一旦我想在出现此错误的情况下使用相同的命令来执行。
也许我不了解事件的局限性,有人可以告诉我我做错了什么吗?遗憾的是,我正在使用运行 Maria Db 的服务器。10.1.48 所以我不能使用新的 Windows 函数,比如 Rank()
解决方案
看起来您正在使用三个 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 行,也许您不会注意到差异,但如果表变大,您可能会注意到。
推荐阅读
- sql - 使用连接聚合和计算不同的值
- kubernetes - Kubernetes connect to MongoDB atlas issue error parsing uri: lookup on 10.96.0.10:53: no such host
- javascript - 当变量类型存储为字符串或布尔值时,如何获取变量类型的名称?
- lua - Hammerspoon 窗口管理在辅助监视器上无法按预期工作
- algorithm - 仅通过基本运算符(MTWTFSS)构建掩码以查找特定日期是否匹配
- android - 尝试用 customrom.zip 中的 magisk 替换 supersu
- javascript - 打字稿 - 没有带有“字符串”类型参数的索引签名
- python - 如何将 Python/Pandas 数据插入规范化数据库
- html - 将鼠标悬停在类上时更改 li 类的 CSS
- ruby-on-rails - 对 Presenter 使用索引会导致 NoMethodError