From 17a5734d67a19cc1b2d4d6003074e313d36dde62 Mon Sep 17 00:00:00 2001 From: YoVinchen Date: Sat, 2 May 2026 17:46:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=85=E9=99=A4=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/cleanup_demo_data.sql | 85 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 sql/cleanup_demo_data.sql diff --git a/sql/cleanup_demo_data.sql b/sql/cleanup_demo_data.sql new file mode 100644 index 0000000..def6516 --- /dev/null +++ b/sql/cleanup_demo_data.sql @@ -0,0 +1,85 @@ +-- 清理演示过程数据:秒杀活动、秒杀订单、admin 前台订单/拼团/评价/收藏/通知数据 +-- 适用于已导入 flash_sale_db.sql 的 MySQL 数据库。 + +SET @admin_user_id := (SELECT id + FROM users + WHERE username = 'admin' + LIMIT 1); + +CREATE TEMPORARY TABLE IF NOT EXISTS cleanup_group_ids +( + id BIGINT PRIMARY KEY +) ENGINE = Memory; + +CREATE TEMPORARY TABLE IF NOT EXISTS cleanup_order_ids +( + id BIGINT PRIMARY KEY +) ENGINE = Memory; + +TRUNCATE TABLE cleanup_group_ids; +TRUNCATE TABLE cleanup_order_ids; + +INSERT IGNORE INTO cleanup_group_ids (id) +SELECT id +FROM group_buying_group +WHERE leader_user_id = @admin_user_id; + +INSERT IGNORE INTO cleanup_order_ids (id) +SELECT id +FROM orders +WHERE order_type = 2 + OR flash_sale_id IS NOT NULL + OR user_id = @admin_user_id + OR group_buying_group_id IN (SELECT id FROM cleanup_group_ids); + +DELETE n +FROM notifications n +WHERE n.user_id = @admin_user_id + OR n.link IN (SELECT CONCAT('/order/', id) + FROM cleanup_order_ids); + +DELETE pr +FROM product_reviews pr +WHERE pr.user_id = @admin_user_id + OR pr.order_id IN (SELECT id FROM cleanup_order_ids); + +DELETE r +FROM order_returns r +WHERE r.user_id = @admin_user_id + OR r.order_id IN (SELECT id FROM cleanup_order_ids); + +DELETE oi +FROM order_items oi +WHERE oi.order_id IN (SELECT id FROM cleanup_order_ids); + +DELETE gbm +FROM group_buying_member gbm +WHERE gbm.user_id = @admin_user_id + OR gbm.order_id IN (SELECT id FROM cleanup_order_ids) + OR gbm.group_id IN (SELECT id FROM cleanup_group_ids); + +DELETE o +FROM orders o +WHERE o.id IN (SELECT id FROM cleanup_order_ids); + +DELETE g +FROM group_buying_group g +WHERE g.id IN (SELECT id FROM cleanup_group_ids); + +DELETE uf +FROM user_favorites uf +WHERE uf.user_id = @admin_user_id; + +DELETE ua +FROM user_addresses ua +WHERE ua.user_id = @admin_user_id; + +DELETE +FROM flash_sales; + +UPDATE users +SET role = 'ADMIN' +WHERE username = 'admin'; + +DROP TEMPORARY TABLE IF EXISTS cleanup_order_ids; +DROP TEMPORARY TABLE IF EXISTS cleanup_group_ids;