From 3ca1fe23c18eacac844e8e60ab5af89296829579 Mon Sep 17 00:00:00 2001 From: easonzhu Date: Thu, 6 Mar 2025 17:30:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=B8=85=E7=90=86=E8=84=9A?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/clear_user.sql | 153 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 sql/clear_user.sql diff --git a/sql/clear_user.sql b/sql/clear_user.sql new file mode 100644 index 0000000..f547764 --- /dev/null +++ b/sql/clear_user.sql @@ -0,0 +1,153 @@ +-- 开始事务 +START TRANSACTION; + +-- 创建临时表 +CREATE TEMPORARY TABLE IF NOT EXISTS temp_user_id AS ( + SELECT user_id FROM user_dept WHERE user_id IN (0) + -- union 0 防止结果集为空 + UNION ALL + SELECT 0 AS user_id FROM dual +); + +CREATE TEMPORARY TABLE IF NOT EXISTS temp_login_id AS ( + SELECT login_id FROM user_dept WHERE user_id IN (select user_id from temp_user_id) + -- union 0 防止结果集为空 + UNION ALL + SELECT 0 AS login_id FROM dual +); + +CREATE TEMPORARY TABLE IF NOT EXISTS temp_advisor_id AS ( + SELECT id AS advisor_id FROM advisor_info WHERE user_id IN (select user_id from temp_user_id) + -- union 0 防止结果集为空 + UNION ALL + SELECT 0 AS login_id FROM dual +); + +CREATE TEMPORARY TABLE IF NOT EXISTS temp_video_id AS ( + SELECT id AS video_id FROM video_live WHERE advisor_id IN (select advisor_id from temp_advisor_id) + -- union 0 防止结果集为空 + UNION ALL + SELECT 0 AS video_id FROM dual +); + +CREATE TEMPORARY TABLE IF NOT EXISTS temp_group_id AS ( + SELECT id AS group_id FROM group_info WHERE advisor_id IN (select advisor_id from temp_advisor_id) + -- union 0 防止结果集为空 + UNION ALL + SELECT 0 AS group_id FROM dual +); + +CREATE TEMPORARY TABLE IF NOT EXISTS temp_group_message_id AS ( + SELECT id AS message_id FROM group_message WHERE group_id IN (select group_id from temp_group_id) + -- union 0 防止结果集为空 + UNION ALL + SELECT 0 AS message_id FROM dual +); + +CREATE TEMPORARY TABLE IF NOT EXISTS temp_course_id AS ( + SELECT id AS course_id FROM course WHERE advisor_id IN (select advisor_id from temp_advisor_id) + -- union 0 防止结果集为空 + UNION ALL + SELECT 0 AS course_id FROM dual +); + +CREATE TEMPORARY TABLE IF NOT EXISTS temp_serial_id AS ( + SELECT id AS serial_id FROM serial WHERE advisor_id IN (select advisor_id from temp_advisor_id) + -- union 0 防止结果集为空 + UNION ALL + SELECT 0 AS serial_id FROM dual +); + +CREATE TEMPORARY TABLE IF NOT EXISTS temp_short_video_id AS ( + SELECT id AS video_id FROM short_video WHERE advisor_id IN (select advisor_id from temp_advisor_id) + -- union 0 防止结果集为空 + UNION ALL + SELECT 0 AS video_id FROM dual +); + +-- 测试临时表 +-- SELECT * FROM temp_user_id; +-- SELECT * FROM temp_login_id; +-- SELECT * FROM temp_advisor_id; +-- SELECT * FROM temp_video_id; +-- SELECT * FROM temp_group_id; + +-- 清理直播 +delete from video_user_watch_collect where video_id in (select video_id from temp_video_id); +delete from video_user_time_collect where video_id in (select video_id from temp_video_id); +delete from video_user_flow where video_id in (select video_id from temp_video_id); +delete from video_live_user where video_id in (select video_id from temp_video_id); +delete from video_live_tag where video_id in (select video_id from temp_video_id); +delete from video_live_risk where video_id in (select video_id from temp_video_id); +delete from video_live_push where video_id in (select video_id from temp_video_id); +delete from video_live_mix where video_id in (select video_id from temp_video_id); +delete from video_live_message where video_id in (select video_id from temp_video_id); +delete from video_live_library where video_id in (select video_id from temp_video_id); +delete from video_live_customer_sale where video_id in (select video_id from temp_video_id); +delete from video_live_column_video where video_id in (select video_id from temp_video_id); +delete from video_live_activity where advisor_id in (select advisor_id from temp_advisor_id); +delete from video_cart where video_id in (select video_id from temp_video_id); +delete from video_browse_detail where video_id in (select video_id from temp_video_id); +delete from video_behavior_notify where video_id in (select video_id from temp_video_id); +delete from video_live where id in (select video_id from temp_video_id); + +-- 清理圈子 +delete from group_user_flow where group_id in (select group_id from temp_group_id); +delete from group_user_collect where group_id in (select group_id from temp_group_id); +delete from group_message_read where message_id in (select message_id from temp_group_message_id); +delete from group_message where group_id in (select group_id from temp_group_id); +delete from group_collect where group_id in (select group_id from temp_group_id); +delete from group_info where id in (select group_id from temp_group_id); + +-- 清理课程 +delete from course_content where course_id in (select course_id from temp_course_id); +delete from course where id in (select course_id from temp_course_id); + +-- 清理合集 +delete from serial_content where serial_id in (select serial_id from temp_serial_id); +delete from serial where id in (select serial_id from temp_serial_id); + +-- 清理短视频 +delete from short_video_watch where video_id in (select video_id from temp_short_video_id); +delete from short_video_share where video_id in (select video_id from temp_short_video_id); +delete from short_video_sale where video_id in (select video_id from temp_short_video_id); +delete from short_video_favor where video_id in (select video_id from temp_short_video_id); +delete from short_video_cart_click where video_id in (select video_id from temp_short_video_id); +delete from short_video_cart where video_id in (select video_id from temp_short_video_id); +delete from short_video where id in (select video_id from temp_short_video_id); + +-- 清理订单 +delete from app_order where product_id in (select video_id from temp_video_id) and product_type = 3; +delete from app_order where product_id in (select group_id from temp_group_id) and product_type = 41; +delete from app_order where product_id in (select course_id from temp_course_id) and product_type = 32; +delete from app_order where product_id in (select serial_id from temp_serial_id) and product_type = 33; +delete from app_order where product_id in (select video_id from temp_short_video_id) and product_type = 35; + +-- 清理RBAC +delete from user_dept where user_id in (select user_id from temp_user_id); +delete from user where id in (select user_id from temp_user_id); +delete from users_roles where user_id in (select user_id from temp_user_id); +delete from user_login where login_id in (select login_id from temp_login_id); + +-- 清理投顾 +delete from advisor_info where id in (select advisor_id from temp_advisor_id); + +-- 清理临时表 +DROP TEMPORARY TABLE temp_user_id; + +DROP TEMPORARY TABLE temp_login_id; + +DROP TEMPORARY TABLE temp_advisor_id; + +DROP TEMPORARY TABLE temp_video_id; + +DROP TEMPORARY TABLE temp_group_id; + +DROP TEMPORARY TABLE temp_group_message_id; + +DROP TEMPORARY TABLE temp_course_id; + +DROP TEMPORARY TABLE temp_serial_id; + +-- 提交事务 +COMMIT; \ No newline at end of file