1
我正在制定课程时间表。有5班,每班每周发生一次。我有两张桌子,一张班表和一张时间表。触发器在类mysql时间表中复制同一表中的行
我试图做一个触发器,该行将在同一张表上复制,但在不同的日期输入。插入后我还需要删除该行。
我有这个至今:
DROP TRIGGER IF EXISTS `erase`//
CREATE TRIGGER `erase` BEFORE DELETE ON `flsch`
FOR EACH ROW INSERT INTO flsch SELECT * FROM flsch WHERE DATE_ID=old.DATE_ID
请问有什么办法可以做到这一点?
@Devart我已经添加了新的代码的要求如下:
DELIMITER $$
CREATE PROCEDURE add_f(IN param_DATEID TIMESTAMP, IN param_SNO VARCHAR(6), IN param_sub VARCHAR(20), IN param_SCHD INT(4))
BEGIN
IF SNO ='math01'
INSERT INTO schtt VALUES(param_DATEID, param_SNO, param_SUB, param_SCHD);
INSERT INTO schtt VALUES(param_DATEID + INTERVAL 7 DAY, param_SNO, param_SUB, param_SCHD);
END IF;
ELSE IF SNO='eng101'
INSERT INTO schtt VALUES(param_DATEID, param_SNO, param_SUB, param_SCHD);
INSERT INTO schtt VALUES((param_DATEID + INTERVAL 1 DAY) + INTERVAL 7 DAY, param_SNO, param_SUB, param_SCHD);
END IF;
END
$$
DELIMITER ;
我可以输入一个字符串在特定日期与程序后,将删除一条记录,或者可以只完成通过触发器
我对MySQL很陌生。你能解释,更深入的..谢谢:) – lovinxlost
我添加了一个例子。 – Devart
谢谢@Devart这真的很有帮助,谢谢你的解释。 我只是在设置subject_ID时遇到了一些麻烦。 我希望程序插入记录到日程表中,其中subject_id ='math01'..但是当我这样做'代码'时它的语法错误gibing INSERT INTO schtt VALUES WHERE subject_id ='BG0002'(DATE_ID + INTERVAL 1 DAY,subject_id,teacher,sched_TIME); 'code' 此外,如果我在程序中选择'从schtt'代码'code',我将能够读取当前表信息并复制到新记录中。 – lovinxlost