서버 mysql 테이블 복사 - no 열을 새로운 번호로 순차적으로 부여하기

페이지 정보

작성자 관리자 (49.♡.11.159) 조회 1,497회 작성일 23-12-03 18:13()

본문

이번에 작업을 하면서 알게된 sql 쿼리 문 입니다.

 

상황]

short_url 테이블을 sleeper_url 테이블로 복사후 365일 미사용 단축 url 데이터를 필터링해서 얻은 후 sleeper_url로 이동 시킵니다.

이동시 고유 no는 새롭게 순차적으로 부여하고 기존 데이터는 삭제 합니다.

 

테이블 복사 SQL 쿼리문

[code]

SELECT *

INTO 복사할 TABLE명

FROM 원본 TABLE명

WHERE 1 = 2

[/code]

참고: where 1 = 2 를 빼면 데이터까지 복사 가능 

 

 

365일 미사용 분리시 사용한 쿼리

아래는 short_url 테이블의 데이터를 sleeper_url 테이블로 복사하되, no 열은 새로운 번호로 순차적으로 부여되고 나머지 값은 그대로 복사되도록 하는 SQL 쿼리문입니다.

이제 no 열을 sleeper_url 테이블에 새로운 번호로 순차적으로 부여하고, 나머지 열은 short_url 테이블에서 가져온 값을 유지합니다.

 

[code]

INSERT INTO sleeper_url (short_url, long_url, hit, ins_dt, today_hit, ........생략........ exp_date)

SELECT short_url, long_url, hit, ins_dt, today_hit, .....생략....... exp_date

FROM short_url

WHERE (today_date = '0000-00-00' OR today_date <= CURDATE() - INTERVAL 365 DAY);


ALTER TABLE sleeper_url AUTO_INCREMENT = 1;


DELETE FROM short_url

WHERE today_date = '0000-00-00' OR today_date <= CURDATE() - INTERVAL 365 DAY;

[/code]




댓글목록

등록된 댓글이 없습니다.