MySQL 날짜 범위 쿼리: 날짜 범위로 테이블 채우기
MySQL 테이블에서 지정된 날짜 범위를 수동으로 채우는 데는 시간이 많이 걸릴 수 있습니다. 이 프로세스를 자동화하려면 저장 프로시저를 사용하여 한 번에 여러 날짜를 테이블에 삽입할 수 있습니다.
솔루션
다음 저장 프로시저 filldates
는 시작 날짜와 종료 날짜 사이의 날짜로 tablename
이라는 테이블을 채웁니다.
DROP PROCEDURE IF EXISTS filldates; DELIMITER | CREATE PROCEDURE filldates(dateStart DATE, dateEnd DATE) BEGIN WHILE dateStart <= dateEnd DO INSERT INTO tablename (datecolumn) VALUES (dateStart); SET dateStart = dateStart + INTERVAL 1 DAY; END WHILE; END | DELIMITER ;
이 절차를 사용하려면 원하는 시작 및 종료 날짜를 지정하여 호출하세요.
CALL filldates('2011-01-01','2011-12-31');
이렇게 하면 2011년 1월 1일부터 12월 31일 사이의 모든 날짜가 tablename
테이블에 삽입됩니다.
기존 날짜 확인
날짜를 삽입하기 전에 테이블에 이미 존재하는지 확인하도록 이 프로세스를 개선할 수 있습니다.
CREATE PROCEDURE filldates(dateStart DATE, dateEnd DATE) BEGIN DECLARE adate DATE; WHILE dateStart <= dateEnd DO SELECT datecolumn INTO adate FROM tablename WHERE datecolumn = dateStart LIMIT 1; IF adate IS NULL THEN INSERT INTO tablename (datecolumn) VALUES (dateStart); END IF; SET dateStart = dateStart + INTERVAL 1 DAY; END WHILE; END;
이렇게 하면 테이블에 중복된 날짜가 삽입되는 것을 방지할 수 있습니다.
위 내용은 날짜 범위로 MySQL 테이블을 효율적으로 채우는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!