테이블 내용 복사하기
안녕하십니까아.. 글마입니다.
오랜만의 포스팅입니다.
오늘은 테이블에서 테이블로 데이터를 복사하는 쿼리를 한번 살펴볼까합니다..
이번 포스팅도 물론.. 일하다보니 필요해서 쓰게된;
아무튼 각설하고 살펴보겠습니다. 우선 방식은
■ 복사한 데이터를 넣을 테이블이 존재하지 않을 경우 (테이블 생성 + 테이블 복사)
□ Create Tables [대상 테이블명] Select * from [원본 테이블명]
□ Select * Into [생성될 테이블명] From [원본 테이블명]
(기본 모드 데이터까지 복사)
□ Select * Into [생성될 테이블명] From [원본 테이블명] Where '1' = '2'
(데이터 없이 테이블 구조만 복사)
□ Select * Into [생성될 테이블명] From [원본 테이블명] Where '1' = '1'
(데이터까지 복사)
■ 복사한 데이터를 넣을 테이블이 존재하는 경우 (테이블 복사)
Insert Into [대상 테이블명] Select * From [원본 테이블명]
■ 다른 DB간의 테이블 복사
Insert Into [대상 데이터베이스명].[대상 테이블명]
Select * From [원본 데이터베이스명].[원본 테이블명]
▶ 중복 데이터에 대한 에러를 무시하는 방법
복사하려는 대상필드가 기본키로 지정되어 있는데 중복 레코드로 인하여 에러를 발생시 처리방법
INSERT ignore INTO
뭐 이렇습니다. 저도 퍼온거라...
저같은 경우는 특정 열에 고정값을 지정하고 나머지 부분만 복사를 해야해서 다음과 같이 쿼리를 썼습니다.
Insert into TB_History
Select '00:00:00:00:00:00' as macaddr, searchDate, address FROM TB_History where searchDate > '2015-01-01 10:00:00' and searchdate < '2015-02-01 13:00:00' and macAddr = '00:00:00:00:00:00'
뭐 보시면 대충 짐작이 가실것 같습니다. 방식은 기본적으로 위에서 2번째 복사 방법을 사용하는거고
중요한 건 Select 시에 조건을 어떻게 넣느냐겠지요.
생각보다 간단한 테이블 복사였습니다~