有没有办法自动生成具有不同日期的行,但保持其余数据相同?
例如,我试图每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;
答案 0 :(得分:0)
这是您的解决方案:
创建一个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;
答案 1 :(得分:0)
我不确定您对&#34;不同日期&#34;的要求。是。如果您只需要从一行到下一行的不同时间戳,以下内容将起作用:
INSERT INTO courses ( CourseCode ,OrganiserID ,TopicID ,StartDate ,EndDate ,Week ,LocationID ,CourseFee )
SELECT 'TEMP',9,51,NOW(), NOW(),4,2,CourseFee
FROM topic WHERE TopicID=51;
如果&#34;不同的日期&#34;表示单行上的每个日期都需要是不同的日历日期,以下内容将起作用:
INSERT INTO courses ( CourseCode ,OrganiserID ,TopicID ,StartDate ,EndDate ,Week ,LocationID ,CourseFee )
SELECT 'TEMP',9,51,NOW(), NOW() + INTERVAL 1 DAY,4,2,CourseFee
FROM topic WHERE TopicID=51;
请澄清您对&#34;不同日期&#34;的要求。我可以形成一个更好的答案。