반응형
쿼리
월별 테이블을 만들기 위해 Batch에서 처리하는 쿼리
이미 생성 된 테이블이 있는 지 확인
인덱스 포함 하여 테이블 복사(데이터제외)
CREATE TABLE IF NOT EXISTS newTableName
LIKE targetTableName;
@Scheduled
매월 1일 실행
@Scheduled(cron = "0 0 0 1 * *")
현재일 기준 다음달 테이블 생성
테이블명_년월형식의 테이블명 생성하여 파라미터로 전달
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.add(Calendar.MONTH, 1);
DateFormat df = new SimpleDateFormat("yyyyMM");
String newTableName = "TABLE_NAME_" + df.format(cal.getTime());
MyBatis
반드시 "$" 키워드 사용 할 것
"#" 키워드는 큰따옴표가 포함됨
<update id="createNewTable">
CREATE TABLE IF NOT EXISTS ${newTableName}
LIKE ${targetTableName}
</update>
다른 예) 인덱스 포함하지 않고 테이블 복사(데이터제외)
CREATE TABLE IF NOT EXISTS ${newTableName}
SELECT * FROM ${targetTableName} WHERE 1=2;
728x90
반응형
'DB' 카테고리의 다른 글
[Mariadb] SUM이 null 일 때 0 처리 (0) | 2022.09.26 |
---|