-- ----------------------------
-- 3、 存储简单的 Trigger，包括重复次数，间隔，以及已触发的次数
-- ----------------------------
DROP TABLE IF EXISTS QRTZ_TRIGGERS;

CREATE TABLE QRTZ_TRIGGERS
(
    sched_name     VARCHAR(120) NOT NULL,                             -- 调度名称
    trigger_name   VARCHAR(200) NOT NULL,                             -- 触发器的名字
    trigger_group  VARCHAR(200) NOT NULL,                             -- 触发器所属组的名字
    job_name       VARCHAR(200) NOT NULL,                             -- qrtz_job_details表job_name的外键
    job_group      VARCHAR(200) NOT NULL,                             -- qrtz_job_details表job_group的外键
    description    VARCHAR(250),                                      -- 相关介绍
    next_fire_time BIGINT,                                            -- 上一次触发时间（毫秒）
    prev_fire_time BIGINT,                                            -- 下一次触发时间（默认为-1表示不触发）
    priority       INTEGER,                                           -- 优先级
    trigger_state  VARCHAR(16)  NOT NULL,                             -- 触发器状态
    trigger_type   VARCHAR(8)   NOT NULL,                             -- 触发器的类型
    start_time     BIGINT       NOT NULL,                             -- 开始时间
    end_time       BIGINT,                                            -- 结束时间
    calendar_name  VARCHAR(200),                                      -- 日程表名称
    misfire_instr  SMALLINT,                                          -- 补偿执行的策略
    job_data       BYTEA,                                             -- 存放持久化job对象
    PRIMARY KEY (sched_name, trigger_name, trigger_group),            -- 主键
    FOREIGN KEY (sched_name, job_name, job_group)
        REFERENCES QRTZ_JOB_DETAILS (sched_name, job_name, job_group) -- 外键约束
);

COMMENT ON TABLE QRTZ_TRIGGERS IS '触发器详细信息表';
COMMENT ON COLUMN QRTZ_TRIGGERS.sched_name IS '调度名称';
COMMENT ON COLUMN QRTZ_TRIGGERS.trigger_name IS '触发器的名字';
COMMENT ON COLUMN QRTZ_TRIGGERS.trigger_group IS '触发器所属组的名字';
COMMENT ON COLUMN QRTZ_TRIGGERS.job_name IS 'qrtz_job_details表job_name的外键';
COMMENT ON COLUMN QRTZ_TRIGGERS.job_group IS 'qrtz_job_details表job_group的外键';
COMMENT ON COLUMN QRTZ_TRIGGERS.description IS '相关介绍';
COMMENT ON COLUMN QRTZ_TRIGGERS.next_fire_time IS '上一次触发时间（毫秒）';
COMMENT ON COLUMN QRTZ_TRIGGERS.prev_fire_time IS '下一次触发时间（默认为-1表示不触发）';
COMMENT ON COLUMN QRTZ_TRIGGERS.priority IS '优先级';
COMMENT ON COLUMN QRTZ_TRIGGERS.trigger_state IS '触发器状态';
COMMENT ON COLUMN QRTZ_TRIGGERS.trigger_type IS '触发器的类型';
COMMENT ON COLUMN QRTZ_TRIGGERS.start_time IS '开始时间';
COMMENT ON COLUMN QRTZ_TRIGGERS.end_time IS '结束时间';
COMMENT ON COLUMN QRTZ_TRIGGERS.calendar_name IS '日程表名称';
COMMENT ON COLUMN QRTZ_TRIGGERS.misfire_instr IS '补偿执行的策略';
COMMENT ON COLUMN QRTZ_TRIGGERS.job_data IS '存放持久化job对象';



