chore(cupang): 제품 39건 쿠팡상품코드 시드 스크립트
사용자 제공 (쿠팡상품코드, 제품코드) 매핑을 cupang_products.coupang_item_code 에 반영. product_code 정확 일치 행만 UPDATE, 변경 전 값은 _cpg_code_seed_backup 에 백업. cupang_products 에 없는 제품코드는 "미등록" 목록으로 출력만 하고 INSERT 하지 않는다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
-- =====================================================================
|
||||
-- cupang_db 시드 — 등록된 제품에 쿠팡상품코드 채우기
|
||||
-- =====================================================================
|
||||
-- 사유: 사용자가 전달한 (쿠팡상품코드, 제품코드) 매핑 39건을
|
||||
-- cupang_products.coupang_item_code 에 반영한다.
|
||||
--
|
||||
-- 선행: scripts/sql/cupang_db_004_product_coupang_item_code.sql 적용 필요.
|
||||
--
|
||||
-- 안전: product_code 가 정확히 일치하는 행만 UPDATE 한다.
|
||||
-- (조건 없는 대량 UPDATE 아님. 삭제/DROP 없음)
|
||||
-- 실행 전 현재 값을 _cpg_code_seed_backup 테이블에 남긴다.
|
||||
-- 목록에 없는 제품은 건드리지 않는다.
|
||||
--
|
||||
-- 실행:
|
||||
-- docker exec -i postgres-db psql -U postgres -d cupang_db < /opt/www/main/scripts/sql/cupang_products_coupang_code_seed.sql
|
||||
--
|
||||
-- 되돌리기(백업 테이블이 남아 있을 때):
|
||||
-- UPDATE cupang_products p SET coupang_item_code = b.old_code
|
||||
-- FROM _cpg_code_seed_backup b WHERE b.id = p.id;
|
||||
-- =====================================================================
|
||||
|
||||
\set ON_ERROR_STOP on
|
||||
\connect cupang_db
|
||||
|
||||
BEGIN;
|
||||
|
||||
CREATE TEMP TABLE _cpg_seed (coupang_item_code TEXT, product_code TEXT);
|
||||
|
||||
INSERT INTO _cpg_seed (coupang_item_code, product_code) VALUES
|
||||
('49479995', 'MT-0550'),
|
||||
('50327973', 'MS-9804'),
|
||||
('50355373', 'MS-9805'),
|
||||
('49312846', 'MS-9801'),
|
||||
('53004902', 'MS-9806'),
|
||||
('50395783', 'MS-9807'),
|
||||
('49479996', 'MT-1800'),
|
||||
('50327252', 'MS-9808'),
|
||||
('50356405', 'MS-9809'),
|
||||
('53027684', 'MS-9810'),
|
||||
('50337606', 'MS-9811'),
|
||||
('49479994', 'MT-3200'),
|
||||
('49312847', 'MS-9802'),
|
||||
('50850925', 'MS-9812'),
|
||||
('50850844', 'MS-9813'),
|
||||
('50848682', 'MS-9814'),
|
||||
('50848226', 'MS-9815'),
|
||||
('50849135', 'MS-9816'),
|
||||
('50886294', 'MS-9817'),
|
||||
('51111880', 'MS-9818'),
|
||||
('51294736', 'MT-4000'),
|
||||
('51294128', 'MT-4000_3'),
|
||||
('51296157', 'MT-4000_5'),
|
||||
('51865475', 'MZ-0001'),
|
||||
('51865928', 'MZ-0002'),
|
||||
('52595565', 'MT-0001'),
|
||||
('52587168', 'MT-0001_3'),
|
||||
('52594262', 'MT-0001_5'),
|
||||
('56562621', 'MS-1001'),
|
||||
('56560732', 'MS-1002'),
|
||||
('56561595', 'MS-1003'),
|
||||
('56562059', 'MS-1004'),
|
||||
('56566081', 'MS-1005'),
|
||||
('56297162', 'MS-1006'),
|
||||
('56297353', 'MS-1007'),
|
||||
('65370605', 'MT-5000_2'),
|
||||
('65369886', 'MT-5000_4'),
|
||||
('65370933', 'MT-7000_2'),
|
||||
('65371251', 'MW-7000_2');
|
||||
|
||||
-- 변경 전 값 백업 (되돌리기용, 남겨둔다)
|
||||
DROP TABLE IF EXISTS _cpg_code_seed_backup;
|
||||
CREATE TABLE _cpg_code_seed_backup AS
|
||||
SELECT p.id, p.product_code, p.coupang_item_code AS old_code, now() AS backed_up_at
|
||||
FROM cupang_products p
|
||||
JOIN _cpg_seed s ON s.product_code = p.product_code;
|
||||
|
||||
UPDATE cupang_products p
|
||||
SET coupang_item_code = s.coupang_item_code
|
||||
FROM _cpg_seed s
|
||||
WHERE p.product_code = s.product_code
|
||||
AND p.coupang_item_code IS DISTINCT FROM s.coupang_item_code;
|
||||
|
||||
-- 반영 결과
|
||||
SELECT count(*) AS "매칭된 제품 수"
|
||||
FROM cupang_products p JOIN _cpg_seed s ON s.product_code = p.product_code;
|
||||
|
||||
-- cupang_products 에 없는 제품코드 (등록 안 된 항목 → 설정 화면에서 먼저 등록 필요)
|
||||
SELECT s.product_code AS "미등록 제품코드", s.coupang_item_code AS "쿠팡상품코드"
|
||||
FROM _cpg_seed s
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM cupang_products p WHERE p.product_code = s.product_code)
|
||||
ORDER BY s.product_code;
|
||||
|
||||
COMMIT;
|
||||
|
||||
SELECT product_code, product_name, coupang_item_code
|
||||
FROM cupang_products
|
||||
WHERE coupang_item_code <> ''
|
||||
ORDER BY product_code;
|
||||
Reference in New Issue
Block a user