是否有语法错误SELECT * FROM gym.site; CREATE EVENT update_site_status ON SCHEDULE EVERY 1 second DO BEGIN UPDATE site SET state = CASE WHEN NOW() > endtime AND state = '可使用' THEN '已失效' WHEN NOW() > begintime AND state = '已失效' THEN '可使用' ELSE state END;
时间: 2023-12-03 19:46:14 浏览: 72
你的 SQL 语句是有语法错误的。SQL 语句中只能包含一个语句,因此你需要将两个语句分开写。
修改后的 SQL 语句如下:
```
UPDATE gym.site
SET state = CASE
WHEN NOW() > endtime AND state = '可使用' THEN '已失效'
WHEN NOW() > begintime AND state = '已失效' THEN '可使用'
ELSE state
END;
CREATE EVENT update_site_status
ON SCHEDULE EVERY 1 SECOND
DO
UPDATE gym.site
SET state = CASE
WHEN NOW() > endtime AND state = '可使用' THEN '已失效'
WHEN NOW() > begintime AND state = '已失效' THEN '可使用'
ELSE state
END;
```
这样,你就可以先执行一次 `UPDATE` 语句来更新站点状态,然后再创建一个定时任务来每秒钟更新一次站点状态了。
相关问题
错误SELECT site_name,begintime,endtime,state FROM gym.order where site_name=? and state='已预约'
这是一个 SQL 查询语句,其中包含一个错误。在 SELECT 语句中,需要指定要查询的列名,但是这个查询语句中只指定了一些列名,缺少了其他必要的列名。正确的查询语句应该类似于下面这样:
```
SELECT site_name, begintime, endtime, state
FROM gym.order
WHERE site_name = ? AND state = '已预约';
```
在这个查询语句中,指定了要查询的列名(site_name, begintime, endtime, state),并且使用 WHERE 子句来筛选出符合条件的记录。注意,这个查询语句中使用了占位符(?),这是为了防止 SQL 注入攻击,实际执行查询时需要将占位符替换为具体的值。
def render(self, mode='human'): if self.viewer is None: from gym.envs.classic_control import rendering self.viewer = rendering.Viewer(500,500) self.viewer.set_bounds(-2.2,2.2,-2.2,2.2) rod = rendering.make_capsule(1, .2) rod.set_color(.8, .3, .3) self.pole_transform = rendering.Transform() rod.add_attr(self.pole_transform) self.viewer.add_geom(rod) axle = rendering.make_circle(.05) axle.set_color(0,0,0) self.viewer.add_geom(axle) fname = path.join(path.dirname(__file__), "assets/clockwise.png") self.img = rendering.Image(fname, 1., 1.) self.imgtrans = rendering.Transform() self.img.add_attr(self.imgtrans) self.viewer.add_onetime(self.img) self.pole_transform.set_rotation(self.state[0] + np.pi/2) if self.last_u: self.imgtrans.scale = (-self.last_u/2, np.abs(self.last_u)/2) return self.viewer.render(return_rgb_array = mode=='rgb_array')
这是一个用于可视化的函数,用于渲染一个叫做 CartPole 的强化学习环境。这个函数使用 Python 的 gym 库提供的 rendering 模块来创建一个图形化界面,其中包含了一个杆子和一个小车。这个函数的主要作用是将当前状态(即杆子的角度和小车的位置)可视化出来,以便于观察算法的表现。具体来说,它会根据当前状态更新杆子的角度和小车的位置,并且还会根据上一次的动作更新小车的大小。最后,它会将渲染结果输出为一个可选的 RGB 数组或者人类可读的图像。
阅读全文