fix: 修复MySQL兼容性问题
This commit is contained in:
parent
5a40bfe078
commit
c1ac3a9fed
@ -20,16 +20,52 @@ CREATE TABLE IF NOT EXISTS reward_record (
|
||||
INDEX idx_reward_type (reward_type)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='奖励发放记录';
|
||||
|
||||
-- 2. 扩展奖励规则表
|
||||
ALTER TABLE reward_rule ADD COLUMN IF NOT EXISTS reward_exp INT DEFAULT 0 COMMENT '奖励经验值';
|
||||
ALTER TABLE reward_rule ADD COLUMN IF NOT EXISTS reward_title VARCHAR(50) COMMENT '奖励称号';
|
||||
ALTER TABLE reward_rule ADD COLUMN IF NOT EXISTS reward_privilege TEXT COMMENT '奖励特权JSON';
|
||||
ALTER TABLE reward_rule ADD COLUMN IF NOT EXISTS max_times_per_user INT DEFAULT 0 COMMENT '每用户最大获得次数(0=无限)';
|
||||
ALTER TABLE reward_rule ADD COLUMN IF NOT EXISTS total_budget INT DEFAULT 0 COMMENT '总预算积分(0=无限)';
|
||||
ALTER TABLE reward_rule ADD COLUMN IF NOT EXISTS used_budget INT DEFAULT 0 COMMENT '已使用预算';
|
||||
ALTER TABLE reward_rule ADD COLUMN IF NOT EXISTS trigger_count INT DEFAULT 0 COMMENT '触发次数';
|
||||
ALTER TABLE reward_rule ADD COLUMN IF NOT EXISTS start_time DATETIME COMMENT '生效开始时间';
|
||||
ALTER TABLE reward_rule ADD COLUMN IF NOT EXISTS end_time DATETIME COMMENT '生效结束时间';
|
||||
-- 2. 扩展奖励规则表(忽略已存在的列错误)
|
||||
-- 使用存储过程安全添加列
|
||||
DELIMITER //
|
||||
DROP PROCEDURE IF EXISTS add_column_if_not_exists//
|
||||
CREATE PROCEDURE add_column_if_not_exists()
|
||||
BEGIN
|
||||
-- reward_exp
|
||||
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'reward_rule' AND COLUMN_NAME = 'reward_exp') THEN
|
||||
ALTER TABLE reward_rule ADD COLUMN reward_exp INT DEFAULT 0 COMMENT '奖励经验值';
|
||||
END IF;
|
||||
-- reward_title
|
||||
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'reward_rule' AND COLUMN_NAME = 'reward_title') THEN
|
||||
ALTER TABLE reward_rule ADD COLUMN reward_title VARCHAR(50) COMMENT '奖励称号';
|
||||
END IF;
|
||||
-- reward_privilege
|
||||
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'reward_rule' AND COLUMN_NAME = 'reward_privilege') THEN
|
||||
ALTER TABLE reward_rule ADD COLUMN reward_privilege TEXT COMMENT '奖励特权JSON';
|
||||
END IF;
|
||||
-- max_times_per_user
|
||||
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'reward_rule' AND COLUMN_NAME = 'max_times_per_user') THEN
|
||||
ALTER TABLE reward_rule ADD COLUMN max_times_per_user INT DEFAULT 0 COMMENT '每用户最大获得次数(0=无限)';
|
||||
END IF;
|
||||
-- total_budget
|
||||
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'reward_rule' AND COLUMN_NAME = 'total_budget') THEN
|
||||
ALTER TABLE reward_rule ADD COLUMN total_budget INT DEFAULT 0 COMMENT '总预算积分(0=无限)';
|
||||
END IF;
|
||||
-- used_budget
|
||||
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'reward_rule' AND COLUMN_NAME = 'used_budget') THEN
|
||||
ALTER TABLE reward_rule ADD COLUMN used_budget INT DEFAULT 0 COMMENT '已使用预算';
|
||||
END IF;
|
||||
-- trigger_count
|
||||
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'reward_rule' AND COLUMN_NAME = 'trigger_count') THEN
|
||||
ALTER TABLE reward_rule ADD COLUMN trigger_count INT DEFAULT 0 COMMENT '触发次数';
|
||||
END IF;
|
||||
-- start_time
|
||||
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'reward_rule' AND COLUMN_NAME = 'start_time') THEN
|
||||
ALTER TABLE reward_rule ADD COLUMN start_time DATETIME COMMENT '生效开始时间';
|
||||
END IF;
|
||||
-- end_time
|
||||
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'reward_rule' AND COLUMN_NAME = 'end_time') THEN
|
||||
ALTER TABLE reward_rule ADD COLUMN end_time DATETIME COMMENT '生效结束时间';
|
||||
END IF;
|
||||
END//
|
||||
DELIMITER ;
|
||||
CALL add_column_if_not_exists();
|
||||
DROP PROCEDURE IF EXISTS add_column_if_not_exists;
|
||||
|
||||
-- 3. 用户徽章表
|
||||
CREATE TABLE IF NOT EXISTS user_badge (
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user