auto_trade_sys/backend/database/add_user_guide_to_recommendations.sql
薇薇安 7336843fec a
2026-01-17 22:43:37 +08:00

105 lines
3.7 KiB
SQL

-- 为 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;