검색결과 리스트
글
--프로시저 실행일 다음달 1일부터 말일까지 테이블 생성
--템플릿 테이블 필요(테이블명_exam)
--생성테이블 규칙 : TB_NAME_yyyyMMdd
DROP PROCEDURE IF EXISTS `create_log_table`;
DELIMITER $$
CREATE PROCEDURE create_log_table(IN TB_NAME VARCHAR(50))
BEGIN
DECLARE i INT DEFAULT 0;
SET @startDay = DATE_ADD(LAST_DAY(NOW()), INTERVAL 1 DAY);
SET @lastDay = DAY(LAST_DAY(DATE_ADD(NOW(),interval 1 MONTH)));
WHILE i < @lastDay DO
SET @log_date = DATE_FORMAT(DATE_ADD(@startDay, INTERVAL i DAY), '%Y%m%d');
SET @stmt_query = CONCAT('CREATE TABLE ',TB_NAME,'_',@log_date,' LIKE ',TB_NAME,'_exam;');
PREPARE stmt FROM @stmt_query;
START TRANSACTION;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
COMMIT;
SET i = i + 1;
END WHILE;
END$$
DELIMITER $$
-- 1달에 1번 실행, 시작일 2017-12-01
DROP EVENT IF EXISTS event_create_log_table;
DELIMITER $$
CREATE EVENT event_create_log_table
-- ON SCHEDULE EVERY 1 MONTH STARTS TIMESTAMP('2017-12-01') ENABLE
ON SCHEDULE EVERY 1 MONTH STARTS '2017-12-01 00:00:00' ENABLE
DO
job1:BEGIN
CALL log.create_log_table('viewlog');
CALL log.create_log_table('clicklog');
CALL log.create_log_table('ad_log');
END job1
$$
DELIMITER ;
'프로그램 > - Sql' 카테고리의 다른 글
MySQL GROUP_CONCAT (0) | 2016.08.05 |
---|---|
[Mysql] procedure, event scheduler 추가 실행 구문 (0) | 2014.12.30 |
[MS-SQL]사용자 함수 ZELLOFILL,LPAD (0) | 2014.12.03 |
[Mysql] 문자열 합치기 CONCAT (0) | 2014.11.13 |
[Mysql] Update Select (0) | 2014.11.13 |
RECENT COMMENT