| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- -- 为 works 表添加 yesterday_* 字段(昨日数据快照)
- -- 执行前请先备份数据库
- -- MySQL 不支持 IF NOT EXISTS,这里提供两种方式:
- -- 方式1:直接执行(如果列已存在会报错,可忽略或手动删除已存在的列)
- -- 方式2:使用存储过程检查后添加(见下方)
- USE media_manager;
- -- ========== 方式1:直接添加(推荐,如果列已存在会报错,可忽略报错继续执行) ==========
- -- 1. 播放数
- ALTER TABLE works
- ADD COLUMN yesterday_play_count INT DEFAULT 0 COMMENT '昨日播放数';
- -- 2. 点赞数
- ALTER TABLE works
- ADD COLUMN yesterday_like_count INT DEFAULT 0 COMMENT '昨日点赞数';
- -- 3. 评论数
- ALTER TABLE works
- ADD COLUMN yesterday_comment_count INT DEFAULT 0 COMMENT '昨日评论数';
- -- 4. 分享数
- ALTER TABLE works
- ADD COLUMN yesterday_share_count INT DEFAULT 0 COMMENT '昨日分享数';
- -- 5. 收藏数
- ALTER TABLE works
- ADD COLUMN yesterday_collect_count INT DEFAULT 0 COMMENT '昨日收藏数';
- -- 6. 推荐数(视频号)
- ALTER TABLE works
- ADD COLUMN yesterday_recommend_count INT DEFAULT 0 COMMENT '昨日推荐数';
- -- 7. 涨粉数
- ALTER TABLE works
- ADD COLUMN yesterday_fans_increase INT DEFAULT 0 COMMENT '昨日涨粉数';
- -- 8. 关注数(视频号)
- ALTER TABLE works
- ADD COLUMN yesterday_follow_count INT DEFAULT 0 COMMENT '昨日关注数';
- -- 9. 封面点击率
- ALTER TABLE works
- ADD COLUMN yesterday_cover_click_rate VARCHAR(50) DEFAULT '0' COMMENT '昨日封面点击率';
- -- 10. 平均观看时长
- ALTER TABLE works
- ADD COLUMN yesterday_avg_watch_duration VARCHAR(50) DEFAULT '0' COMMENT '昨日平均观看时长';
- -- 11. 总观看时长
- ALTER TABLE works
- ADD COLUMN yesterday_total_watch_duration VARCHAR(50) DEFAULT '0' COMMENT '昨日总观看时长';
- -- 12. 完播率
- ALTER TABLE works
- ADD COLUMN yesterday_completion_rate VARCHAR(50) DEFAULT '0' COMMENT '昨日完播率';
- -- 13. 2秒退出率
- ALTER TABLE works
- ADD COLUMN yesterday_two_second_exit_rate VARCHAR(50) DEFAULT '0' COMMENT '昨日2秒退出率';
- -- 14. 5秒完播率
- ALTER TABLE works
- ADD COLUMN yesterday_completion_rate_5s VARCHAR(50) DEFAULT '0' COMMENT '昨日5秒完播率';
- -- 15. 曝光数
- ALTER TABLE works
- ADD COLUMN yesterday_exposure_count INT DEFAULT 0 COMMENT '昨日曝光数';
- -- ========== 方式2:使用存储过程安全添加(如果列已存在则跳过) ==========
- /*
- DELIMITER $$
- DROP PROCEDURE IF EXISTS add_column_if_not_exists$$
- CREATE PROCEDURE add_column_if_not_exists(
- IN table_name VARCHAR(255),
- IN column_name VARCHAR(255),
- IN column_definition TEXT
- )
- BEGIN
- DECLARE column_exists INT DEFAULT 0;
-
- SELECT COUNT(*) INTO column_exists
- FROM information_schema.COLUMNS
- WHERE TABLE_SCHEMA = DATABASE()
- AND TABLE_NAME = table_name
- AND COLUMN_NAME = column_name;
-
- IF column_exists = 0 THEN
- SET @sql = CONCAT('ALTER TABLE ', table_name, ' ADD COLUMN ', column_name, ' ', column_definition);
- PREPARE stmt FROM @sql;
- EXECUTE stmt;
- DEALLOCATE PREPARE stmt;
- END IF;
- END$$
- DELIMITER ;
- CALL add_column_if_not_exists('works', 'yesterday_play_count', 'INT DEFAULT 0 COMMENT ''昨日播放数''');
- CALL add_column_if_not_exists('works', 'yesterday_like_count', 'INT DEFAULT 0 COMMENT ''昨日点赞数''');
- CALL add_column_if_not_exists('works', 'yesterday_comment_count', 'INT DEFAULT 0 COMMENT ''昨日评论数''');
- CALL add_column_if_not_exists('works', 'yesterday_share_count', 'INT DEFAULT 0 COMMENT ''昨日分享数''');
- CALL add_column_if_not_exists('works', 'yesterday_collect_count', 'INT DEFAULT 0 COMMENT ''昨日收藏数''');
- CALL add_column_if_not_exists('works', 'yesterday_recommend_count', 'INT DEFAULT 0 COMMENT ''昨日推荐数''');
- CALL add_column_if_not_exists('works', 'yesterday_fans_increase', 'INT DEFAULT 0 COMMENT ''昨日涨粉数''');
- CALL add_column_if_not_exists('works', 'yesterday_follow_count', 'INT DEFAULT 0 COMMENT ''昨日关注数''');
- CALL add_column_if_not_exists('works', 'yesterday_cover_click_rate', 'VARCHAR(50) DEFAULT ''0'' COMMENT ''昨日封面点击率''');
- CALL add_column_if_not_exists('works', 'yesterday_avg_watch_duration', 'VARCHAR(50) DEFAULT ''0'' COMMENT ''昨日平均观看时长''');
- CALL add_column_if_not_exists('works', 'yesterday_total_watch_duration', 'VARCHAR(50) DEFAULT ''0'' COMMENT ''昨日总观看时长''');
- CALL add_column_if_not_exists('works', 'yesterday_completion_rate', 'VARCHAR(50) DEFAULT ''0'' COMMENT ''昨日完播率''');
- CALL add_column_if_not_exists('works', 'yesterday_two_second_exit_rate', 'VARCHAR(50) DEFAULT ''0'' COMMENT ''昨日2秒退出率''');
- CALL add_column_if_not_exists('works', 'yesterday_completion_rate_5s', 'VARCHAR(50) DEFAULT ''0'' COMMENT ''昨日5秒完播率''');
- CALL add_column_if_not_exists('works', 'yesterday_exposure_count', 'INT DEFAULT 0 COMMENT ''昨日曝光数''');
- DROP PROCEDURE IF EXISTS add_column_if_not_exists;
- */
|