您好,我的问题是在Mamp环境中,从MySql中两个不同的表中添加日期到日期上。
会员交易的会员类型为一对多
链接为type_id
日期也是yyyy/mm/dd
格式,因为这是Mamp在我的研究中唯一允许的格式。
我想要一个新的结束日期列,该列链接到成员资格类型表中的列持续时间。我想将Duration_day
添加到start_date
上以产生与type_id匹配的结束日期。 (因此它们链接起来可以给出正确的结束日期)
我希望在保存开始日期和type-id时自动进行计算
任何帮助将不胜感激 谢谢
答案 0 :(得分:0)
您将需要在INSERT / UPDATE上触发-在您的情况下,计算列(对于MySQL v5.7.6 +)将不起作用(它只能引用同一表中的列)。 这两个触发器可能看起来像这样
CREATE DEFINER = 'root'@'%' TRIGGER `m_duration_ins_tr1` BEFORE INSERT ON `membership`
FOR EACH ROW
BEGIN
DECLARE duration INTEGER;
SELECT m_duration INTO duration FROM membership_type WHERE id = NEW.type_id;
SET NEW.end_date := DATE_ADD(NEW.start_date, INTERVAL duration DAY);
END;
CREATE DEFINER = 'root'@'%' TRIGGER `m_duration_ins_tr1` BEFORE UPDATE ON `membership`
FOR EACH ROW
BEGIN
DECLARE duration INTEGER;
SELECT m_duration INTO duration FROM membership_type WHERE id = NEW.type_id;
SET NEW.end_date := DATE_ADD(NEW.start_date, INTERVAL duration DAY);
END;