[mysql] SELECT를 이용해서 행을 복사해서 넣기(row 복사) 프로그래밍

기존 쇼핑몰 리뉴얼건을 처리했다.

리뉴얼하면서 상품의 이미지사이즈가 다양해지면서 한행에 넣기가 매우 많아진탓에

상품 이미지 테이블로 따로 빼서 join을 하게 처리했었다.

그런데 오늘 추가 요구사항이 도착했다.

admin에 상품복사 기능이 있는데 그 기능을 이용하면 이미지가 안보인다는것.

이유를 찾아보니 기존 admin에 있는 로직을 변경한적이 없어서

상품 이미지 테이블에 상품복사를 하면서(복사를하면 새로운 상품번호가 부여됨)

상품 이미지 테이블에 복사된상품번호의 행이 생성이 안되서 join을 못하고있던것...

그래서 admin 상품복사때 상품이미지테이블이 똑같이 복사해서 실행해주게끔 처리했다.

 

INSERT IGNORE INTO `goods_image_new` 
    ( `goods_no`, `goods_tasa`, `img_420_540`, `img_380_489`, `img_350_450` )
SELECT `goods_no`, `goods_tasa`, `img_420_540`, `img_380_489`, `img_350_450`
    FROM `goods_image_new`
    WHERE `goods_tasa` = 'A000EFA239'


해당테이블은 num 이라는 컬럼이 AUTOINCREMENT 로 동작하고있다.

새로운 번호가 부여되서 등록된다. 

 

출처 - https://ncube.net/8632

Tag :

Leave Comments