SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci; USE hyapp_wallet; -- 067 已可能在生产执行,因此本迁移只修改后续 INSERT 使用的列默认, -- 不 UPDATE 任何现有行。五列在一条 INSTANT DDL 中更新,只改数据字典, -- 也不会把用户已明确选择的 true/false 重置成新产品默认。 SET @ddl := IF( (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'user_vip_settings' AND COLUMN_NAME IN ( 'room_entry_notice_enabled', 'online_global_notice_enabled', 'hide_profile_data_enabled', 'anonymous_profile_visit_enabled', 'leaderboard_invisible_enabled' )) = 5, 'ALTER TABLE user_vip_settings ALTER COLUMN room_entry_notice_enabled SET DEFAULT TRUE, ALTER COLUMN online_global_notice_enabled SET DEFAULT TRUE, ALTER COLUMN hide_profile_data_enabled SET DEFAULT FALSE, ALTER COLUMN anonymous_profile_visit_enabled SET DEFAULT FALSE, ALTER COLUMN leaderboard_invisible_enabled SET DEFAULT FALSE, ALGORITHM=INSTANT', 'SELECT 1' ); PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;