簡単なハックは次のとおりです。
drop table if exists dates;
create table dates(datefield date);
drop procedure if exists insertDates;
delimiter $$
create procedure insertDates(start_date date)
begin
set @days = 0;
set @end_date = str_to_date('1970-01-01', '%Y-%m-%d');
while (@end_date < curdate()) do
insert into dates
select
date_add(start_date, interval @days day)
from (select @days:=@days+1) r
;
set @end_date:=(select max(datefield) from dates);
end while
;
end $$
delimiter ;
call insertDates('2012-06-06');
select * from dates;
毎日の挿入については、cronジョブを試すことができます。または、MySQLは次のような「イベント」を提供します。
CREATE EVENT yourDB_Schema.insertDateEachDay
ON SCHEDULE EVERY 1 DAY
DO
INSERT INTO yourTable (yourDateColumn) VALUES (CURDATE());
ここでそれについてもっと読む:
MySQLCreateEventマニュアルエントリ
イベントはスキーマに関連付けられています。event_nameの一部としてスキーマが示されていない場合は、デフォルトの(現在の)スキーマが想定されます。
_
STARTSを指定しないことは、STARTS CURRENT_TIMESTAMPを使用することと同じです。つまり、イベントに指定されたアクションは、イベントの作成直後に繰り返され始めます。