我有" table1"其中主数据存储如 -
id name create_date validity expire_date
1 A 2015-08-01 3 2015-11-01
2 B 2015-09-01 12 2016-08-01
3 C 2015-09-15 1 2015-10-15
但现在想要在" table2"中插入数据对于expire_date,根据有效期而不改变前端。使用触发器或程序想要实现此任务。
id parent_id expire_date
1 1 2015-09-01
2 1 2015-10-01
3 1 2015-11-01
如何使用程序或触发器实现此目的。
答案 0 :(得分:0)
很难具体,因为你的问题并不具体。
一般来说,这是设计查询以将内容从一个表插入另一个表的过程。
首先,编写一个SELECT
查询,生成一个结果集,其中包含要插入表中的行和列。使用列列表来获取正确的列,并使用适当的WHERE
子句来获取正确的行。查询和结果集的眼球,以确保它包含正确的信息。
第二次,在
之前添加调试后的SELECT
查询
INSERT INTO target_tablename (col, col, col)
测试此项以确保将正确的行插入目标表。
第三次,在MySQL服务器中创建一个EVENT
来运行您刚刚编写的查询。该活动将在一天中的适当时间运行您的查询。
如果你不采取这些步骤,你可能会非常困惑。
答案 1 :(得分:0)
可以使用存储过程实现任务 -
CREATE DEFINER=`root`@`localhost` PROCEDURE `addexpire`(IN uname varchar(50), IN cdate date, IN vm int)
BEGIN
insert into table1 (name,create_date,validity) values (uname,cdate,vm);
BEGIN
declare uparent_id INT;
declare v_val int default 0;
SET uparent_id = LAST_INSERT_ID();
while v_val < vm do
BEGIN
declare expire_date date;
SET expire_date = DATE_ADD(cdate,INTERVAL v_val+1 MONTH);
insert into table2 (parent_id,expire_date) values (uparent_id,expire_date);
set v_val=v_val+1;
END;
end while;
END;
END