| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- -- 删除 platform=bilibili(快手?否:B站) 和 platform=kuaishou(快手) 的所有数据,
- -- 并缩减 platform_accounts.platform 枚举(移除 'bilibili'、'kuaishou' 两个值)
- -- 执行顺序:先删各关联表数据(评论/作品日统计/作品/发布结果/账号级统计),最后删 platform_accounts,再 ALTER 枚举
- -- 说明:多数关联表对 platform_accounts 有 ON DELETE CASCADE,显式删除仅为清晰与安全兜底
- -- !!! 执行前请备份数据库;本脚本不可逆 !!!
- -- 执行日期: 2026-06-23
- USE media_manager;
- -- 1. 删除评论(comments.platform 为 VARCHAR;account_id 外键为 CASCADE,此处按 platform 显式删)
- DELETE FROM comments
- WHERE platform IN ('bilibili', 'kuaishou');
- -- 2. 删除作品每日统计(先于 works 删除,避免外键 CASCADE 时序问题;CASCADE 也会自动删)
- DELETE FROM work_day_statistics
- WHERE work_id IN (SELECT id FROM works WHERE platform IN ('bilibili', 'kuaishou'));
- -- 3. 删除作品(work_day_statistics 已在上一步清理;accountId 外键 CASCADE 也会处理残留)
- DELETE FROM works
- WHERE platform IN ('bilibili', 'kuaishou');
- -- 4. 删除发布结果(publish_results.platform 为 VARCHAR;account_id CASCADE 也会删)
- DELETE FROM publish_results
- WHERE platform IN ('bilibili', 'kuaishou');
- -- 5. 删除账号级数据统计(analytics_data 无 platform 列,按 account_id 子查询;account_id CASCADE 也会删)
- DELETE FROM analytics_data
- WHERE account_id IN (SELECT id FROM platform_accounts WHERE platform IN ('bilibili', 'kuaishou'));
- -- 6. 删除账号每日统计(user_day_statistics 无 platform 列,按 account_id 子查询;account_id CASCADE 也会删)
- DELETE FROM user_day_statistics
- WHERE account_id IN (SELECT id FROM platform_accounts WHERE platform IN ('bilibili', 'kuaishou'));
- -- 7. 删除平台账号(核心;上述关联表已显式清理,CASCADE 也会兜底)
- DELETE FROM platform_accounts
- WHERE platform IN ('bilibili', 'kuaishou');
- -- 8. 缩减 platform_accounts.platform 枚举:移除 'bilibili'、'kuaishou'
- -- 新枚举与 database/schema.sql 保持一致(7 值)
- ALTER TABLE platform_accounts
- MODIFY COLUMN platform ENUM('douyin','weixin_video','xiaohongshu','toutiao','baijiahao','qie','dayuhao') NOT NULL;
- -- 提示:publish_tasks.target_accounts (JSON) 可能仍引用已删除的 bilibili/kuaishou 账号 id,
- -- 这些历史任务的 target_accounts 会存在悬空引用,但不影响新任务,可按需手动清理或保留为历史记录。
|