SQL
[SQL] 같은 테이블에 데이터 복사
펜네임
2019. 12. 26. 17:24
같은 테이블에 데이터 복사
조건
1. 특정 컬럼 값 변경 필요
2. 데이터 여러 행 (조건에 따라 개수 변경되는 경우)
3. 컬럼 3개(column1, column2, sequance)에 Unique 제약이 걸려있음.
최소 1개는 새로 넣는 데이터와 기존의 데이터가 달라야 함
INSERT INTO
table_name
(
column1,
column2,
column3,
sequance,
column4
)
SELECT
column1,
column2,
column3,
(sequance +
(
SELECT
COUNT (sequance)
FROM
table_name
WHERE
column1 = #{column1} AND column2 = #{column2} AND column3 = #{column3} AND column4 = '1'
)) AS sequance, // 조건에 맞는 컬럼 수만큼 시퀀스 수 추가
'2' AS column4 // 특정 컬럼값 변경하기 (통일)
FROM
table_name
WHERE
column1 = #{column1} AND column2 = #{column2} AND column3 = #{column3} AND column4 = '1'