You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
RuoYi-Vue/sql_refacor0120/t_stock_daily_trade.sql

34 lines
2.3 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

-- 个股每日交易数据表大表按“交易日期”按月分区MySQL原生分区
CREATE TABLE `t_stock_daily_trade` (
`stock_code` VARCHAR(20) NOT NULL COMMENT '证券代码关联t_stock_basic',
`trade_date` DATE NOT NULL COMMENT '交易日期',
`open_price` DECIMAL(10,2) NULL COMMENT '开盘价(单位:元)',
`close_price` DECIMAL(10,2) NOT NULL COMMENT '收盘价(单位:元)',
`high_price` DECIMAL(10,2) NULL COMMENT '最高价(单位:元)',
`low_price` DECIMAL(10,2) NULL COMMENT '最低价(单位:元)',
`price_change_rate` DECIMAL(6,4) NULL COMMENT '当日涨跌幅(百分比)',
`volume` BIGINT NULL COMMENT '成交量(单位:股)',
`turnover` DECIMAL(20,2) NULL COMMENT '成交额(单位:万元)',
`free_circulation_cap` DECIMAL(20,2) NULL COMMENT '自由流通市值(单位:万元)',
`is_limit_up` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否涨停1=是0=否)',
`is_limit_down` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否跌停1=是0=否)',
`momentum_10d` DECIMAL(6,4) NULL COMMENT '10日动量涨跌幅',
`momentum_20d` DECIMAL(6,4) NULL COMMENT '20日动量涨跌幅',
`momentum_60d` DECIMAL(6,4) NULL COMMENT '60日动量涨跌幅',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据创建时间',
-- 复合主键:确保“个股代码+日期”唯一
PRIMARY KEY (`stock_code`, `trade_date`),
-- 外键:关联个股基础表,确保个股代码有效性
FOREIGN KEY (`stock_code`)
REFERENCES `t_stock_basic` (`stock_code`)
ON UPDATE RESTRICT ON DELETE RESTRICT,
-- 索引:优化按日期查询所有个股交易数据的场景
INDEX `idx_t_stock_daily_trade_date` (`trade_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
-- 按“交易日期”按月分区示例2024年12月-2025年3月后续可扩展
PARTITION BY RANGE (TO_DAYS(`trade_date`)) (
PARTITION `p202412` VALUES LESS THAN (TO_DAYS('2025-01-01')) COMMENT '2024年12月数据',
PARTITION `p202501` VALUES LESS THAN (TO_DAYS('2025-02-01')) COMMENT '2025年1月数据',
PARTITION `p202502` VALUES LESS THAN (TO_DAYS('2025-03-01')) COMMENT '2025年2月数据',
PARTITION `p202503` VALUES LESS THAN (TO_DAYS('2025-04-01')) COMMENT '2025年3月数据'
) COMMENT='A股个股每日交易数据按月分区';