这是我的触发器:
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代码更新它时就不会了。可能的问题是什么?
发布于 2014-08-20 00:02:00
你可以这样做,我测试了它,它是工作的:
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 ;https://stackoverflow.com/questions/25383659
复制相似问题