017_clean_start.sql 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. -- 1. 제약조건 삭제
  2. SET @constraint_name = (
  3. SELECT CONSTRAINT_NAME
  4. FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
  5. WHERE TABLE_SCHEMA = DATABASE()
  6. AND TABLE_NAME = 'VENDOR_INFLUENCER_PARTNERSHIP'
  7. AND COLUMN_NAME = 'VENDOR_SEQ'
  8. AND REFERENCED_TABLE_NAME IS NULL
  9. AND CONSTRAINT_NAME = 'unique_active_partnership'
  10. LIMIT 1
  11. );
  12. SET @sql = IF(@constraint_name IS NOT NULL,
  13. CONCAT('ALTER TABLE VENDOR_INFLUENCER_PARTNERSHIP DROP INDEX ', @constraint_name),
  14. 'SELECT "No constraint found to drop"'
  15. );
  16. PREPARE stmt FROM @sql;
  17. EXECUTE stmt;
  18. DEALLOCATE PREPARE stmt;
  19. -- 2. 특정 벤더-인플루언서 조합의 데이터만 삭제
  20. DELETE FROM VENDOR_INFLUENCER_PARTNERSHIP
  21. WHERE VENDOR_SEQ = 8 AND INFLUENCER_SEQ = 23;
  22. -- 3. 새로운 제약조건 추가
  23. ALTER TABLE VENDOR_INFLUENCER_PARTNERSHIP
  24. ADD CONSTRAINT unique_active_partnership
  25. UNIQUE KEY (VENDOR_SEQ, INFLUENCER_SEQ, IS_ACTIVE);
  26. -- 4. 데이터 삭제 확인
  27. SELECT COUNT(*) as count
  28. FROM VENDOR_INFLUENCER_PARTNERSHIP
  29. WHERE VENDOR_SEQ = 8 AND INFLUENCER_SEQ = 23;