Files
geg-gas-pcitc/scripts/xxl-job-kingbase.sql
2025-10-10 09:20:48 +08:00

350 lines
13 KiB
MySQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- XXL-JOB v2.4.0 适配 Kingbase V8 Oracle 模式
-- 特点所有COMMENT单独创建所有索引单独创建
-- 序列创建:用于实现自增主键
CREATE SEQUENCE SEQ_XXL_JOB_INFO_ID
START WITH 1
INCREMENT BY 1
NOMAXVALUE
NOCYCLE
NOCACHE;
CREATE SEQUENCE SEQ_XXL_JOB_LOG_ID
START WITH 1
INCREMENT BY 1
NOMAXVALUE
NOCYCLE
NOCACHE;
CREATE SEQUENCE SEQ_XXL_JOB_LOG_REPORT_ID
START WITH 1
INCREMENT BY 1
NOMAXVALUE
NOCYCLE
NOCACHE;
CREATE SEQUENCE SEQ_XXL_JOB_LOGGLUE_ID
START WITH 1
INCREMENT BY 1
NOMAXVALUE
NOCYCLE
NOCACHE;
CREATE SEQUENCE SEQ_XXL_JOB_REGISTRY_ID
START WITH 1
INCREMENT BY 1
NOMAXVALUE
NOCYCLE
NOCACHE;
CREATE SEQUENCE SEQ_XXL_JOB_GROUP_ID
START WITH 1
INCREMENT BY 1
NOMAXVALUE
NOCYCLE
NOCACHE;
CREATE SEQUENCE SEQ_XXL_JOB_USER_ID
START WITH 1
INCREMENT BY 1
NOMAXVALUE
NOCYCLE
NOCACHE;
-- 1. 任务信息表仅表结构无COMMENT和索引
CREATE TABLE xxl_job_info (
id NUMBER(11) NOT NULL,
job_group NUMBER(11) NOT NULL,
job_desc VARCHAR(255) NOT NULL,
add_time TIMESTAMP DEFAULT NULL,
update_time TIMESTAMP DEFAULT NULL,
author VARCHAR(64) DEFAULT NULL,
alarm_email VARCHAR(255) DEFAULT NULL,
schedule_type VARCHAR(50) NOT NULL DEFAULT 'NONE',
schedule_conf VARCHAR(128) DEFAULT NULL,
misfire_strategy VARCHAR(50) NOT NULL DEFAULT 'DO_NOTHING',
executor_route_strategy VARCHAR(50) DEFAULT NULL,
executor_handler VARCHAR(255) DEFAULT NULL,
executor_param VARCHAR(512) DEFAULT NULL,
executor_block_strategy VARCHAR(50) DEFAULT NULL,
executor_timeout NUMBER(11) NOT NULL DEFAULT 0,
executor_fail_retry_count NUMBER(11) NOT NULL DEFAULT 0,
glue_type VARCHAR(50) NOT NULL,
glue_source CLOB,
glue_remark VARCHAR(128) DEFAULT NULL,
glue_updatetime TIMESTAMP DEFAULT NULL,
child_jobid VARCHAR(255) DEFAULT NULL,
trigger_status NUMBER(4) NOT NULL DEFAULT 0,
trigger_last_time NUMBER(13) NOT NULL DEFAULT 0,
trigger_next_time NUMBER(13) NOT NULL DEFAULT 0,
PRIMARY KEY (id)
);
-- 2. 任务日志表(仅表结构)
CREATE TABLE xxl_job_log (
id NUMBER(20) NOT NULL,
job_group NUMBER(11) NOT NULL,
job_id NUMBER(11) NOT NULL,
executor_address VARCHAR(255) DEFAULT NULL,
executor_handler VARCHAR(255) DEFAULT NULL,
executor_param VARCHAR(512) DEFAULT NULL,
executor_sharding_param VARCHAR(20) DEFAULT NULL,
executor_fail_retry_count NUMBER(11) NOT NULL DEFAULT 0,
trigger_time TIMESTAMP DEFAULT NULL,
trigger_code NUMBER(11) NOT NULL,
trigger_msg CLOB,
handle_time TIMESTAMP DEFAULT NULL,
handle_code NUMBER(11) NOT NULL,
handle_msg CLOB,
alarm_status NUMBER(4) NOT NULL DEFAULT 0,
PRIMARY KEY (id)
);
-- 3. 日志报表表(仅表结构)
CREATE TABLE xxl_job_log_report (
id NUMBER(11) NOT NULL,
trigger_day TIMESTAMP DEFAULT NULL,
running_count NUMBER(11) NOT NULL DEFAULT 0,
suc_count NUMBER(11) NOT NULL DEFAULT 0,
fail_count NUMBER(11) NOT NULL DEFAULT 0,
update_time TIMESTAMP DEFAULT NULL,
PRIMARY KEY (id)
);
-- 4. GLUE日志表仅表结构
CREATE TABLE xxl_job_logglue (
id NUMBER(11) NOT NULL,
job_id NUMBER(11) NOT NULL,
glue_type VARCHAR(50) DEFAULT NULL,
glue_source CLOB,
glue_remark VARCHAR(128) NOT NULL,
add_time TIMESTAMP DEFAULT NULL,
update_time TIMESTAMP DEFAULT NULL,
PRIMARY KEY (id)
);
-- 5. 注册信息表(仅表结构)
CREATE TABLE xxl_job_registry (
id NUMBER(11) NOT NULL,
registry_group VARCHAR(50) NOT NULL,
registry_key VARCHAR(255) NOT NULL,
registry_value VARCHAR(255) NOT NULL,
update_time TIMESTAMP DEFAULT NULL,
PRIMARY KEY (id)
);
-- 6. 执行器组表(仅表结构)
CREATE TABLE xxl_job_group (
id NUMBER(11) NOT NULL,
app_name VARCHAR(64) NOT NULL,
title VARCHAR(12) NOT NULL,
address_type NUMBER(4) NOT NULL DEFAULT 0,
address_list CLOB,
update_time TIMESTAMP DEFAULT NULL,
PRIMARY KEY (id)
);
-- 7. 用户表(仅表结构)
CREATE TABLE xxl_job_user (
id NUMBER(11) NOT NULL,
username VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL,
role NUMBER(4) NOT NULL,
permission VARCHAR(255) DEFAULT NULL,
PRIMARY KEY (id)
);
-- 8. 锁表(仅表结构)
CREATE TABLE xxl_job_lock (
lock_name VARCHAR(50) NOT NULL,
PRIMARY KEY (lock_name)
);
-- 触发器创建:实现主键自增
CREATE OR REPLACE TRIGGER TRG_XXL_JOB_INFO_ID
BEFORE INSERT ON xxl_job_info
FOR EACH ROW
BEGIN
IF :NEW.id IS NULL THEN
SELECT SEQ_XXL_JOB_INFO_ID.NEXTVAL INTO :NEW.id FROM DUAL;
END IF;
END;
CREATE OR REPLACE TRIGGER TRG_XXL_JOB_LOG_ID
BEFORE INSERT ON xxl_job_log
FOR EACH ROW
BEGIN
IF :NEW.id IS NULL THEN
SELECT SEQ_XXL_JOB_LOG_ID.NEXTVAL INTO :NEW.id FROM DUAL;
END IF;
END;
CREATE OR REPLACE TRIGGER TRG_XXL_JOB_LOG_REPORT_ID
BEFORE INSERT ON xxl_job_log_report
FOR EACH ROW
BEGIN
IF :NEW.id IS NULL THEN
SELECT SEQ_XXL_JOB_LOG_REPORT_ID.NEXTVAL INTO :NEW.id FROM DUAL;
END IF;
END;
CREATE OR REPLACE TRIGGER TRG_XXL_JOB_LOGGLUE_ID
BEFORE INSERT ON xxl_job_logglue
FOR EACH ROW
BEGIN
IF :NEW.id IS NULL THEN
SELECT SEQ_XXL_JOB_LOGGLUE_ID.NEXTVAL INTO :NEW.id FROM DUAL;
END IF;
END;
CREATE OR REPLACE TRIGGER TRG_XXL_JOB_REGISTRY_ID
BEFORE INSERT ON xxl_job_registry
FOR EACH ROW
BEGIN
IF :NEW.id IS NULL THEN
SELECT SEQ_XXL_JOB_REGISTRY_ID.NEXTVAL INTO :NEW.id FROM DUAL;
END IF;
END;
CREATE OR REPLACE TRIGGER TRG_XXL_JOB_GROUP_ID
BEFORE INSERT ON xxl_job_group
FOR EACH ROW
BEGIN
IF :NEW.id IS NULL THEN
SELECT SEQ_XXL_JOB_GROUP_ID.NEXTVAL INTO :NEW.id FROM DUAL;
END IF;
END;
CREATE OR REPLACE TRIGGER TRG_XXL_JOB_USER_ID
BEFORE INSERT ON xxl_job_user
FOR EACH ROW
BEGIN
IF :NEW.id IS NULL THEN
SELECT SEQ_XXL_JOB_USER_ID.NEXTVAL INTO :NEW.id FROM DUAL;
END IF;
END;
-- ########################### 单独创建表和列的COMMENT ###########################
-- 1. xxl_job_info 表注释
COMMENT ON TABLE xxl_job_info IS '任务信息表';
COMMENT ON COLUMN xxl_job_info.job_group IS '执行器主键ID';
COMMENT ON COLUMN xxl_job_info.job_desc IS '任务描述';
COMMENT ON COLUMN xxl_job_info.add_time IS '创建时间';
COMMENT ON COLUMN xxl_job_info.update_time IS '更新时间';
COMMENT ON COLUMN xxl_job_info.author IS '作者';
COMMENT ON COLUMN xxl_job_info.alarm_email IS '报警邮件';
COMMENT ON COLUMN xxl_job_info.schedule_type IS '调度类型';
COMMENT ON COLUMN xxl_job_info.schedule_conf IS '调度配置,值含义取决于调度类型';
COMMENT ON COLUMN xxl_job_info.misfire_strategy IS '调度过期策略';
COMMENT ON COLUMN xxl_job_info.executor_route_strategy IS '执行器路由策略';
COMMENT ON COLUMN xxl_job_info.executor_handler IS '执行器任务handler';
COMMENT ON COLUMN xxl_job_info.executor_param IS '执行器任务参数';
COMMENT ON COLUMN xxl_job_info.executor_block_strategy IS '阻塞处理策略';
COMMENT ON COLUMN xxl_job_info.executor_timeout IS '任务执行超时时间,单位秒';
COMMENT ON COLUMN xxl_job_info.executor_fail_retry_count IS '失败重试次数';
COMMENT ON COLUMN xxl_job_info.glue_type IS 'GLUE类型';
COMMENT ON COLUMN xxl_job_info.glue_source IS 'GLUE源代码';
COMMENT ON COLUMN xxl_job_info.glue_remark IS 'GLUE备注';
COMMENT ON COLUMN xxl_job_info.glue_updatetime IS 'GLUE更新时间';
COMMENT ON COLUMN xxl_job_info.child_jobid IS '子任务ID多个逗号分隔';
COMMENT ON COLUMN xxl_job_info.trigger_status IS '调度状态0-停止1-运行';
COMMENT ON COLUMN xxl_job_info.trigger_last_time IS '上次调度时间';
COMMENT ON COLUMN xxl_job_info.trigger_next_time IS '下次调度时间';
-- 2. xxl_job_log 表注释
COMMENT ON TABLE xxl_job_log IS '任务日志表';
COMMENT ON COLUMN xxl_job_log.job_group IS '执行器主键ID';
COMMENT ON COLUMN xxl_job_log.job_id IS '任务主键ID';
COMMENT ON COLUMN xxl_job_log.executor_address IS '执行器地址,本次执行的地址';
COMMENT ON COLUMN xxl_job_log.executor_handler IS '执行器任务handler';
COMMENT ON COLUMN xxl_job_log.executor_param IS '执行器任务参数';
COMMENT ON COLUMN xxl_job_log.executor_sharding_param IS '执行器任务分片参数,格式如 1/2';
COMMENT ON COLUMN xxl_job_log.executor_fail_retry_count IS '失败重试次数';
COMMENT ON COLUMN xxl_job_log.trigger_time IS '调度-时间';
COMMENT ON COLUMN xxl_job_log.trigger_code IS '调度-结果';
COMMENT ON COLUMN xxl_job_log.trigger_msg IS '调度-日志';
COMMENT ON COLUMN xxl_job_log.handle_time IS '执行-时间';
COMMENT ON COLUMN xxl_job_log.handle_code IS '执行-状态';
COMMENT ON COLUMN xxl_job_log.handle_msg IS '执行-日志';
COMMENT ON COLUMN xxl_job_log.alarm_status IS '告警状态0-默认、1-无需告警、2-告警成功、3-告警失败';
-- 3. xxl_job_log_report 表注释
COMMENT ON TABLE xxl_job_log_report IS '日志报表表';
COMMENT ON COLUMN xxl_job_log_report.trigger_day IS '调度-时间';
COMMENT ON COLUMN xxl_job_log_report.running_count IS '运行中-日志数量';
COMMENT ON COLUMN xxl_job_log_report.suc_count IS '执行成功-日志数量';
COMMENT ON COLUMN xxl_job_log_report.fail_count IS '执行失败-日志数量';
COMMENT ON COLUMN xxl_job_log_report.update_time IS '更新时间';
-- 4. xxl_job_logglue 表注释
COMMENT ON TABLE xxl_job_logglue IS 'GLUE日志表';
COMMENT ON COLUMN xxl_job_logglue.job_id IS '任务主键ID';
COMMENT ON COLUMN xxl_job_logglue.glue_type IS 'GLUE类型';
COMMENT ON COLUMN xxl_job_logglue.glue_source IS 'GLUE源代码';
COMMENT ON COLUMN xxl_job_logglue.glue_remark IS 'GLUE备注';
COMMENT ON COLUMN xxl_job_logglue.add_time IS '创建时间';
COMMENT ON COLUMN xxl_job_logglue.update_time IS '更新时间';
-- 5. xxl_job_registry 表注释
COMMENT ON TABLE xxl_job_registry IS '注册信息表';
COMMENT ON COLUMN xxl_job_registry.registry_group IS '注册分组';
COMMENT ON COLUMN xxl_job_registry.registry_key IS '注册键';
COMMENT ON COLUMN xxl_job_registry.registry_value IS '注册值';
COMMENT ON COLUMN xxl_job_registry.update_time IS '更新时间';
-- 6. xxl_job_group 表注释
COMMENT ON TABLE xxl_job_group IS '执行器组表';
COMMENT ON COLUMN xxl_job_group.app_name IS '执行器AppName';
COMMENT ON COLUMN xxl_job_group.title IS '执行器名称';
COMMENT ON COLUMN xxl_job_group.address_type IS '执行器地址类型0=自动注册、1=手动录入';
COMMENT ON COLUMN xxl_job_group.address_list IS '执行器地址列表,多地址逗号分隔';
COMMENT ON COLUMN xxl_job_group.update_time IS '更新时间';
-- 7. xxl_job_user 表注释
COMMENT ON TABLE xxl_job_user IS '用户表';
COMMENT ON COLUMN xxl_job_user.username IS '账号';
COMMENT ON COLUMN xxl_job_user.password IS '密码';
COMMENT ON COLUMN xxl_job_user.role IS '角色0-普通用户、1-管理员';
COMMENT ON COLUMN xxl_job_user.permission IS '权限执行器ID列表多个逗号分割';
-- 8. xxl_job_lock 表注释
COMMENT ON TABLE xxl_job_lock IS '调度锁表';
COMMENT ON COLUMN xxl_job_lock.lock_name IS '锁名称';
-- ########################### 单独创建所有索引 ###########################
-- 1. xxl_job_log 表索引
CREATE INDEX I_trigger_time ON xxl_job_log(trigger_time);
CREATE INDEX I_handle_code ON xxl_job_log(handle_code);
-- 2. xxl_job_log_report 表唯一索引
CREATE UNIQUE INDEX UK_XXL_JOB_LOG_REPORT_TRIGGERDAY ON xxl_job_log_report(trigger_day);
-- 3. xxl_job_registry 表索引
CREATE INDEX I_g_k_v ON xxl_job_registry(registry_group, registry_key, registry_value);
-- 4. xxl_job_user 表唯一索引
CREATE UNIQUE INDEX UK_XXL_JOB_USER_USERNAME ON xxl_job_user(username);
-- ########################### 初始化数据 ###########################
INSERT INTO xxl_job_group(id, app_name, title, address_type, address_list, update_time)
VALUES (1, 'xxl-job-executor-sample', '示例执行器', 0, NULL, TO_TIMESTAMP('2018-11-03 22:21:31', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO xxl_job_info(id, job_group, job_desc, add_time, update_time, author, alarm_email,
schedule_type, schedule_conf, misfire_strategy, executor_route_strategy,
executor_handler, executor_param, executor_block_strategy, executor_timeout,
executor_fail_retry_count, glue_type, glue_source, glue_remark, glue_updatetime, child_jobid)
VALUES (1, 1, '测试任务1',
TO_TIMESTAMP('2018-11-03 22:21:31', 'YYYY-MM-DD HH24:MI:SS'),
TO_TIMESTAMP('2018-11-03 22:21:31', 'YYYY-MM-DD HH24:MI:SS'),
'XXL', '', 'CRON', '0 0 0 * * ? *', 'DO_NOTHING', 'FIRST',
'demoJobHandler', '', 'SERIAL_EXECUTION', 0, 0, 'BEAN', '',
'GLUE代码初始化', TO_TIMESTAMP('2018-11-03 22:21:31', 'YYYY-MM-DD HH24:MI:SS'), '');
INSERT INTO xxl_job_user(id, username, password, role, permission)
VALUES (1, 'admin', 'e10adc3949ba59abbe56e057f20f883e', 1, NULL);
INSERT INTO xxl_job_lock(lock_name)
VALUES ('schedule_lock');
COMMIT;