본문 바로가기
SQL

[SQL] 같은 테이블에 데이터 복사

by 펜네임 2019. 12. 26.

같은 테이블에 데이터 복사

 

조건

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'

 

댓글