我注意到服务器上有一个进程已经运行了超过12天,我认为这与上次重新启动MySQL的时间一致。
mysql> SHOW FULL PROCESSLIST;
+---------+-----------------+-----------+------+---------+---------+------------------------+-----------------------+
| Id | User | Host | db | Command | Time | State | Info |
+---------+-----------------+-----------+------+---------+---------+------------------------+-----------------------+
| 5 | event_scheduler | localhost | NULL | Daemon | 1098372 | Waiting on empty queue | NULL |
| 1774483 | root | localhost | NULL | Query | 0 | starting | SHOW FULL PROCESSLIST |
+---------+-----------------+-----------+------+---------+---------+------------------------+-----------------------+
2 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
没有事件,我也没有尝试创建任何事件。
mysql> SELECT * FROM information_schema.EVENTS;
Empty set (0.00 sec) …
Run Code Online (Sandbox Code Playgroud) 有没有办法查看 MySQL 事件的主体?DO
节后的 SQL 部分?我可以轻松地重命名、启用、禁用,甚至分别更改日程和正文,但要准确查看我的活动正在做什么,似乎很难实现。
我发现用的是重新创建命令最接近的事SHOW CREATE EVENT event_name
,像解释这里的官方MySQL站点。
是否有另一个命令或技巧来检索 MySQL 事件的主体?
我在 Mysql Workbench 中有一个每秒更新的天气数据库。它包含温度和风速。这是我的数据库:
CREATE TABLE `test`.`new_table` (
`id` INT(10) NOT NULL,
`date` DATETIME NOT NULL,
`temperature` VARCHAR(25) NOT NULL,
`wind_speed` VARCHAR(25) NOT NULL,
`humidity` VARCHAR(25) NOT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_bin;
Run Code Online (Sandbox Code Playgroud)
我想找到每小时的平均温度并将结果插入到一个新表中,如下所示
CREATE TABLE `test`.`table1` (
`idsea_state` INT(10) NOT NULL,
`dateavg` DATETIME NOT NULL,
`avg_temperature` VARCHAR(25) NOT NULL,
PRIMARY KEY (`idsea_state`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_bin;
Run Code Online (Sandbox Code Playgroud)
这是我的编码,用于查找平均值并将结果插入新表中
INSERT INTO `table1`
(`dateavg`, `avg_temperature`)
SELECT …
Run Code Online (Sandbox Code Playgroud)