-- 기존 sales_agency(사업자번호·대표자 등) → 구분·코드·명 스키마로 변경 -- (이미 신규 스키마면 건너뛰거나 에러 날 수 있음 — 실행 전 백업 권장) -- 1) 신규 컬럼 ALTER TABLE `sales_agency` ADD COLUMN `sa_kind` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '대행소 구분' AFTER `sa_lg_idx`, ADD COLUMN `sa_code` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '대행소 코드' AFTER `sa_kind`; -- 2) 코드·구분 채우기 (사업자번호 → 코드, 없으면 SA+번호) UPDATE `sales_agency` SET `sa_code` = CASE WHEN `sa_biz_no` IS NOT NULL AND TRIM(`sa_biz_no`) <> '' THEN LEFT(TRIM(`sa_biz_no`), 50) ELSE CONCAT('SA', `sa_idx`) END WHERE `sa_code` = ''; UPDATE `sales_agency` SET `sa_kind` = '기타' WHERE `sa_kind` = '' OR `sa_kind` IS NULL; -- 3) 동일 지자체 내 코드 중복 제거 (있으면 두 번째부터 접미사) -- (간단 처리: sa_idx 붙이기) UPDATE `sales_agency` s1 INNER JOIN ( SELECT `sa_lg_idx`, `sa_code`, MIN(`sa_idx`) AS keep_idx, COUNT(*) AS cnt FROM `sales_agency` GROUP BY `sa_lg_idx`, `sa_code` HAVING cnt > 1 ) d ON d.sa_lg_idx = s1.sa_lg_idx AND d.sa_code = s1.sa_code AND s1.sa_idx > d.keep_idx SET s1.sa_code = LEFT(CONCAT(s1.sa_code, '_', s1.sa_idx), 50); -- 4) 불필요 컬럼 제거 ALTER TABLE `sales_agency` DROP COLUMN `sa_biz_no`, DROP COLUMN `sa_rep_name`, DROP COLUMN `sa_tel`, DROP COLUMN `sa_addr`, DROP COLUMN `sa_state`; -- 5) 유니크 인덱스 ALTER TABLE `sales_agency` ADD UNIQUE KEY `uk_sa_lg_code` (`sa_lg_idx`, `sa_code`);