From 165863c2798a76e4e247fcf3155616d1bcb01b44 Mon Sep 17 00:00:00 2001 From: hy001 Date: Tue, 19 May 2026 21:02:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8A=BD=E5=A5=96=E6=A6=82?= =?UTF-8?q?=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../045_wheel_limits_probability_retry.sql | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/migrations/045_wheel_limits_probability_retry.sql b/migrations/045_wheel_limits_probability_retry.sql index 5e5a077..d53f8d6 100644 --- a/migrations/045_wheel_limits_probability_retry.sql +++ b/migrations/045_wheel_limits_probability_retry.sql @@ -84,13 +84,27 @@ PREPARE add_wheel_draw_grant_time_stmt FROM @add_wheel_draw_grant_time_sql; EXECUTE add_wheel_draw_grant_time_stmt; DEALLOCATE PREPARE add_wheel_draw_grant_time_stmt; +SET @wheel_draw_reward_user_idx_columns := ( + SELECT GROUP_CONCAT(column_name ORDER BY seq_in_index) + FROM information_schema.statistics + WHERE table_schema = @current_schema + AND table_name = 'wheel_draw_record' + AND index_name = 'idx_wheel_draw_reward_user' +); + +SET @drop_wheel_draw_reward_user_idx_sql := IF( + @wheel_draw_reward_user_idx_columns IS NOT NULL + AND @wheel_draw_reward_user_idx_columns <> 'reward_config_id,user_id,status', + 'ALTER TABLE `wheel_draw_record` DROP INDEX `idx_wheel_draw_reward_user`', + 'SELECT 1' +); +PREPARE drop_wheel_draw_reward_user_idx_stmt FROM @drop_wheel_draw_reward_user_idx_sql; +EXECUTE drop_wheel_draw_reward_user_idx_stmt; +DEALLOCATE PREPARE drop_wheel_draw_reward_user_idx_stmt; + SET @add_wheel_draw_reward_user_idx_sql := IF( - NOT EXISTS ( - SELECT 1 FROM information_schema.statistics - WHERE table_schema = @current_schema - AND table_name = 'wheel_draw_record' - AND index_name = 'idx_wheel_draw_reward_user' - ), + @wheel_draw_reward_user_idx_columns IS NULL + OR @wheel_draw_reward_user_idx_columns <> 'reward_config_id,user_id,status', 'ALTER TABLE `wheel_draw_record` ADD INDEX `idx_wheel_draw_reward_user` (`reward_config_id`, `user_id`, `status`)', 'SELECT 1' );