-- 为 trade_recommendations 表添加 user_guide 字段 -- 用于存储用户指南(人话版计划) -- 检查字段是否存在,如果不存在则添加 SET @dbname = DATABASE(); SET @tablename = 'trade_recommendations'; SET @columnname = 'user_guide'; SET @preparedStatement = (SELECT IF( ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE (TABLE_SCHEMA = @dbname) AND (TABLE_NAME = @tablename) AND (COLUMN_NAME = @columnname) ) > 0, "SELECT 'Column already exists.' AS result;", CONCAT("ALTER TABLE ", @tablename, " ADD COLUMN ", @columnname, " TEXT COMMENT '用户指南(人话版操作计划)';") )); PREPARE alterIfNotExists FROM @preparedStatement; EXECUTE alterIfNotExists; DEALLOCATE PREPARE alterIfNotExists; -- 同时添加其他新增字段(如果不存在) SET @columnname2 = 'recommendation_category'; SET @preparedStatement2 = (SELECT IF( ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE (TABLE_SCHEMA = @dbname) AND (TABLE_NAME = @tablename) AND (COLUMN_NAME = @columnname2) ) > 0, "SELECT 'Column recommendation_category already exists.' AS result;", CONCAT("ALTER TABLE ", @tablename, " ADD COLUMN ", @columnname2, " VARCHAR(50) COMMENT '推荐分类(如:顺趋势突破、逆势反弹等)';") )); PREPARE alterIfNotExists2 FROM @preparedStatement2; EXECUTE alterIfNotExists2; DEALLOCATE PREPARE alterIfNotExists2; SET @columnname3 = 'risk_level'; SET @preparedStatement3 = (SELECT IF( ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE (TABLE_SCHEMA = @dbname) AND (TABLE_NAME = @tablename) AND (COLUMN_NAME = @columnname3) ) > 0, "SELECT 'Column risk_level already exists.' AS result;", CONCAT("ALTER TABLE ", @tablename, " ADD COLUMN ", @columnname3, " VARCHAR(20) COMMENT '风险等级(高、中高、中等、低中)';") )); PREPARE alterIfNotExists3 FROM @preparedStatement3; EXECUTE alterIfNotExists3; DEALLOCATE PREPARE alterIfNotExists3; SET @columnname4 = 'expected_hold_time'; SET @preparedStatement4 = (SELECT IF( ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE (TABLE_SCHEMA = @dbname) AND (TABLE_NAME = @tablename) AND (COLUMN_NAME = @columnname4) ) > 0, "SELECT 'Column expected_hold_time already exists.' AS result;", CONCAT("ALTER TABLE ", @tablename, " ADD COLUMN ", @columnname4, " VARCHAR(100) COMMENT '预期持仓时间';") )); PREPARE alterIfNotExists4 FROM @preparedStatement4; EXECUTE alterIfNotExists4; DEALLOCATE PREPARE alterIfNotExists4; SET @columnname5 = 'trading_tutorial'; SET @preparedStatement5 = (SELECT IF( ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE (TABLE_SCHEMA = @dbname) AND (TABLE_NAME = @tablename) AND (COLUMN_NAME = @columnname5) ) > 0, "SELECT 'Column trading_tutorial already exists.' AS result;", CONCAT("ALTER TABLE ", @tablename, " ADD COLUMN ", @columnname5, " TEXT COMMENT '交易教程提示';") )); PREPARE alterIfNotExists5 FROM @preparedStatement5; EXECUTE alterIfNotExists5; DEALLOCATE PREPARE alterIfNotExists5; SET @columnname6 = 'max_hold_days'; SET @preparedStatement6 = (SELECT IF( ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE (TABLE_SCHEMA = @dbname) AND (TABLE_NAME = @tablename) AND (COLUMN_NAME = @columnname6) ) > 0, "SELECT 'Column max_hold_days already exists.' AS result;", CONCAT("ALTER TABLE ", @tablename, " ADD COLUMN ", @columnname6, " INT DEFAULT 3 COMMENT '最大持仓天数';") )); PREPARE alterIfNotExists6 FROM @preparedStatement6; EXECUTE alterIfNotExists6; DEALLOCATE PREPARE alterIfNotExists6; SELECT 'Migration completed: Added user_guide and related fields to trade_recommendations table.' AS result;