有没有办法自动生成具有不同日期的行,但保持其余数据相同?
例如,我尝试每 7 周生成一次以下内容?有没有一种敏锐的方法可以做到这一点,或者我应该手动重复以下操作?
INSERT INTO courses ( CourseCode ,OrganiserID ,TopicID ,StartDate ,EndDate ,Week ,LocationID ,CourseFee )
SELECT 'TEMP',9,51,'2018-01-22','2018-01-26',4 -- Week ,2,CourseFee FROM topic WHERE TopicID=51;
最佳答案
这是适合您的解决方案:
创建一个带有id的表
插入 1 到 52,持续 52 周
从表格中选择一周的开始日期和结束日期。
插入其他数据以及本周的开始日期和结束日期
Create table test1(id int not null PRIMARY KEY);
INSERT into test1 select 1;
insert ignore into test1 select id+(select max(id) from test1) from test1;
insert ignore into test1 select id+(select max(id) from test1) from test1;
insert ignore into test1 select id+(select max(id) from test1) from test1;
insert ignore into test1 select id+(select max(id) from test1) from test1;
insert ignore into test1 select id+(select max(id) from test1) from test1;
insert ignore into test1 select id+(select max(id) from test1) from test1;
delete from test1 where id >52;
-- Select 52 week begin and end date
select DATE_ADD('2017-01-02',INTERVAL (id-1)*7 DAY) Week_begin_date, DATE_ADD('2017-01-02',INTERVAL (id-1)*7+4 DAY) Week_end_date from test1;
--Insert Data for 52 weeks
INSERT INTO courses ( CourseCode ,OrganiserID ,TopicID ,StartDate ,EndDate ,Week ,LocationID ,CourseFee )
SELECT 'TEMP',9,51,DATE_ADD('2017-01-02',INTERVAL (id-1)*7 DAY), DATE_ADD('2017-01-02',INTERVAL (id-1)*7+4 DAY) ,id, <LocationID_value>, <CourseFee_value> from test1;
关于mysql - 自动生成具有不同日期的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47802156/