Files
geg-gas-pcitc/scripts/xxl-job-kingbase.sql

350 lines
13 KiB
MySQL
Raw Normal View History

2025-10-10 09:20:48 +08:00
-- 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;