admin/sql/clear_biz_data.sql
zzh c3d21dfdbb
All checks were successful
Build and Deploy / deploy (push) Successful in 1m5s
fix: 裂变邀请人发券,并合并营销 SQL 到 admin1008
补齐被邀请人首单派送成功后给邀请人发放 REFERRAL_INVITER;将分散 migrate 脚本合并为可重复执行的 admin1008.sql。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-08 17:30:22 +08:00

101 lines
2.9 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- =============================================================================
-- 只清空表里的数据,不删表、不改表结构(DELETE FROM,不是 DROP / TRUNCATE)
-- 1) fake_simple_admin:表名以前缀开头
-- t_order / c_ / t_pickup / t_recharge / t_customer
-- t_coupon / t_member / t_referral / t_sales / t_service
-- 2) track_center:表名以 t_order 开头
-- 请在 Navicat / DBeaver / MySQL Workbench 里整段执行(需要 DELIMITER)。
-- =============================================================================
-- 执行前先看将要清空的表
SELECT TABLE_SCHEMA, TABLE_NAME
FROM information_schema.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND (
(
TABLE_SCHEMA = 'fake_simple_admin'
AND (
TABLE_NAME LIKE 't\_order%'
OR TABLE_NAME LIKE 'c\_%'
OR TABLE_NAME LIKE 't\_pickup%'
OR TABLE_NAME LIKE 't\_recharge%'
OR TABLE_NAME LIKE 't\_customer%'
OR TABLE_NAME LIKE 't\_coupon%'
OR TABLE_NAME LIKE 't\_member%'
OR TABLE_NAME LIKE 't\_referral%'
OR TABLE_NAME LIKE 't\_sales%'
OR TABLE_NAME LIKE 't\_service%'
)
)
OR (
TABLE_SCHEMA = 'track_center'
AND TABLE_NAME LIKE 't\_order%'
)
)
ORDER BY TABLE_SCHEMA, TABLE_NAME;
DELIMITER $$
DROP PROCEDURE IF EXISTS `fake_simple_admin`.`sp_clear_biz_tables`$$
CREATE PROCEDURE `fake_simple_admin`.`sp_clear_biz_tables`()
BEGIN
DECLARE v_done INT DEFAULT 0;
DECLARE v_schema VARCHAR(64);
DECLARE v_table VARCHAR(128);
DECLARE v_sql TEXT;
DECLARE cur CURSOR FOR
SELECT TABLE_SCHEMA, TABLE_NAME
FROM information_schema.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND (
(
TABLE_SCHEMA = 'fake_simple_admin'
AND (
TABLE_NAME LIKE 't\_order%'
OR TABLE_NAME LIKE 'c\_%'
OR TABLE_NAME LIKE 't\_pickup%'
OR TABLE_NAME LIKE 't\_recharge%'
OR TABLE_NAME LIKE 't\_customer%'
OR TABLE_NAME LIKE 't\_coupon%'
OR TABLE_NAME LIKE 't\_member%'
OR TABLE_NAME LIKE 't\_referral%'
OR TABLE_NAME LIKE 't\_sales%'
OR TABLE_NAME LIKE 't\_service%'
)
)
OR (
TABLE_SCHEMA = 'track_center'
AND TABLE_NAME LIKE 't\_order%'
)
)
ORDER BY TABLE_SCHEMA, TABLE_NAME;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_done = 1;
SET FOREIGN_KEY_CHECKS = 0;
OPEN cur;
read_loop: LOOP
FETCH cur INTO v_schema, v_table;
IF v_done = 1 THEN
LEAVE read_loop;
END IF;
SET v_sql = CONCAT('DELETE FROM `', v_schema, '`.`', v_table, '`');
SET @stmt = v_sql;
PREPARE s FROM @stmt;
EXECUTE s;
DEALLOCATE PREPARE s;
END LOOP;
CLOSE cur;
SET FOREIGN_KEY_CHECKS = 1;
END$$
DELIMITER ;
CALL `fake_simple_admin`.`sp_clear_biz_tables`();
DROP PROCEDURE IF EXISTS `fake_simple_admin`.`sp_clear_biz_tables`;