집 >데이터 베이스 >MySQL 튜토리얼 >저장 프로시저를 사용하여 날짜 범위로 MySQL 테이블을 채우는 방법은 무엇입니까?
저장 프로시저를 사용하여 MySQL 날짜 범위 테이블 생성
특정 범위(예: 2011-01-01부터 2011-12-31) 내의 일련의 날짜로 채워진 테이블이 필요한 경우가 많습니다. 저장 프로시저는 효율적인 솔루션을 제공합니다.
다음 저장 프로시저 filldates
는 WHILE
루프를 사용하여 날짜 범위를 반복하고 각 날짜를 테이블의 _date
열에 삽입합니다.
<code class="language-sql">DROP PROCEDURE IF EXISTS filldates; DELIMITER | CREATE PROCEDURE filldates(dateStart DATE, dateEnd DATE) BEGIN DECLARE adate DATE; SET adate = dateStart; WHILE adate <= dateEnd DO INSERT INTO your_table (_date) VALUES (adate); SET adate = adate + INTERVAL 1 DAY; END WHILE; END | DELIMITER ;</code>
테이블을 채우려면 filldates
프로시저를 실행하고 시작 날짜와 종료 날짜를 입력하세요.
<code class="language-sql">CALL filldates('2011-01-01','2011-12-31');</code>
이 방법을 사용하면 지정된 범위 내의 모든 날짜가 포함된 테이블을 빠르게 생성할 수 있습니다.
중복 항목을 방지하려면 삽입하기 전에 기존 날짜를 확인하도록 절차를 수정하세요.
<code class="language-sql">CREATE PROCEDURE filldates(dateStart DATE, dateEnd DATE) BEGIN DECLARE adate DATE; SET adate = dateStart; WHILE adate <= dateEnd DO IF NOT EXISTS (SELECT 1 FROM your_table WHERE _date = adate) THEN INSERT INTO your_table (_date) VALUES (adate); END IF; SET adate = adate + INTERVAL 1 DAY; END WHILE; END;</code>
이 개정된 절차는 데이터 고유성을 보장합니다. your_table
을 테이블의 실제 이름으로 바꿔야 합니다.
위 내용은 저장 프로시저를 사용하여 날짜 범위로 MySQL 테이블을 채우는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!