20260203
This commit is contained in:
40
doc_mall/consumer/sql/insert_default_skus.sql
Normal file
40
doc_mall/consumer/sql/insert_default_skus.sql
Normal file
@@ -0,0 +1,40 @@
|
||||
-- =====================================================================================
|
||||
-- 为没有SKU的商品生成默认SKU
|
||||
-- 说明:购物车逻辑依赖SKU ID,如果商品没有SKU数据,前端生成的模拟SKU ID会导致数据库外键约束错误
|
||||
-- =====================================================================================
|
||||
|
||||
DO $$
|
||||
DECLARE
|
||||
v_product RECORD;
|
||||
v_sku_id UUID;
|
||||
v_count INT := 0;
|
||||
BEGIN
|
||||
-- 遍历所有没有SKU的商品
|
||||
FOR v_product IN
|
||||
SELECT p.id, p.product_code, p.base_price, p.total_stock
|
||||
FROM public.ml_products p
|
||||
LEFT JOIN public.ml_product_skus s ON p.id = s.product_id
|
||||
WHERE s.id IS NULL
|
||||
LOOP
|
||||
-- 生成默认SKU
|
||||
INSERT INTO public.ml_product_skus (
|
||||
product_id,
|
||||
sku_code,
|
||||
specifications,
|
||||
price,
|
||||
stock,
|
||||
status
|
||||
) VALUES (
|
||||
v_product.id,
|
||||
v_product.product_code || '-DEF',
|
||||
'{"默认": "标准规格"}',
|
||||
v_product.base_price,
|
||||
v_product.total_stock,
|
||||
1
|
||||
);
|
||||
|
||||
v_count := v_count + 1;
|
||||
END LOOP;
|
||||
|
||||
RAISE NOTICE '已为 % 个商品生成默认SKU', v_count;
|
||||
END $$;
|
||||
Reference in New Issue
Block a user