delete_bilibili_kuaishou_and_related.sql 2.5 KB

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