서버 mysql 테이블 복사 - no 열을 새로운 번호로 순차적으로 부여하기
페이지 정보
본문
이번에 작업을 하면서 알게된 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]
- 이전글
- 다음글
댓글목록
등록된 댓글이 없습니다.