当我尝试使用quartz和持久性作为mysql创建一个简单的作业调度程序时,我收到以下错误。
org.quartz.JobPersistenceException:无法获取下一个触发器:“字段列表”中的未知列“SCHED_TIME”
造成
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:“字段列表”中存在未知列“SCHED_TIME”
我仔细检查了quartz官网提供的数据库架构。但我找不到任何对应的栏目。
在表 QRTZ_FIRED_TRIGGERS 上添加 NUMBER(28) 类型的字段 SCHED_TIME
这都是关于 Maven 依赖项中的 Quartz Scheduler 版本。
对于quartz 版本 2.2.0 和 2.1.7,数据库模式进行了修改,添加了 SCHED_TIME 等字段。
因此,使用 2.1.7 版本的quartz maven 依赖项或为 2.2.0 找到正确的数据库架构脚本。
注意:我希望 Quartz 团队的源文件中提供的 mysql 数据库模式脚本对于 Quartz 2.2.0 版本不正确。
在表 QRTZ_FIRED_TRIGGERS 上添加字段
SCHED_TIME
run the sql query -->> alter table QRTZ_FIRED_TRIGGERS add sched_time NUMBER(13);
根据源代码文档,sched_time 列已存在于表 qrtz_fired_triggers 中, https://github.com/quartz-scheduler/quartz/blob/quartz-2.3.x/quartz-core/src/main/resources/org/quartz/impl/jdbcjobstore/tables_mysql.sql
为什么要更改表格?