这是我的触发器:
DELIMITER $$
CREATE TRIGGER after_changing_student_year
AFTER UPDATE ON student_details
FOR EACH ROW
BEGIN
SET @old_stud_id = NEW.student_id;
INSERT INTO assigned_groups (student_id) VALUES (@old_stud_id);
END$$
DELIMITER ;
我使用了mysql变量,因为直接赋值不起作用。
但我发现这个有效:
DELIMITER $$
CREATE TRIGGER after_changing_student_year
AFTER UPDATE ON student_details
FOR EACH ROW
BEGIN
INSERT INTO assigned_groups (student_id) VALUES (83);
END$$
DELIMITER ;
我还发现将assigned_groups中的student_id列重命名为student_id_1会有效,但这不是一个可行的解决方案,因为我必须制作这样的许多触发器。
编辑:对不起,伙伴们,我的PHP代码出了问题。当我直接在mysql中编辑时,触发器正常工作。但是当我通过PHP代码更新它时。可能是什么问题?答案 0 :(得分:0)
你可以这样做,我测试了它并且它正在工作:
DELIMITER $$
CREATE TRIGGER after_changing_student_year
AFTER UPDATE ON student_details
FOR EACH ROW
BEGIN
DECLARE old_stud_id INT;
SET old_stud_id = NEW.student_id;
INSERT INTO assigned_groups (student_id) VALUES (old_stud_id);
END$$
DELIMITER ;