44 lines
1.1 KiB
PL/PgSQL
44 lines
1.1 KiB
PL/PgSQL
-- 数据回填脚本:为历史订单填充 purchase_role 和 operator_type
|
||
-- 用途:将现有平台代购订单标记为 purchased_by_platform
|
||
-- 执行时间:预计 < 1 秒(取决于历史订单数量)
|
||
-- 回滚方法:将 purchase_role 和 operator_type 设为 NULL
|
||
|
||
BEGIN;
|
||
|
||
-- 1. 回填平台代购订单(offline + is_purchase_on_behalf = true)
|
||
UPDATE tb_order
|
||
SET
|
||
purchase_role = 'purchased_by_platform',
|
||
operator_type = 'platform'
|
||
WHERE
|
||
payment_method = 'offline'
|
||
AND is_purchase_on_behalf = true
|
||
AND purchase_role IS NULL;
|
||
|
||
-- 2. 显示回填统计信息
|
||
DO $$
|
||
DECLARE
|
||
updated_count INTEGER;
|
||
BEGIN
|
||
SELECT COUNT(*) INTO updated_count
|
||
FROM tb_order
|
||
WHERE purchase_role = 'purchased_by_platform'
|
||
AND operator_type = 'platform';
|
||
|
||
RAISE NOTICE '已回填 % 条平台代购订单', updated_count;
|
||
END $$;
|
||
|
||
COMMIT;
|
||
|
||
-- 验证回填结果
|
||
SELECT
|
||
purchase_role,
|
||
operator_type,
|
||
payment_method,
|
||
is_purchase_on_behalf,
|
||
COUNT(*) as count
|
||
FROM tb_order
|
||
WHERE purchase_role IS NOT NULL
|
||
GROUP BY purchase_role, operator_type, payment_method, is_purchase_on_behalf
|
||
ORDER BY count DESC;
|