簡體   English   中英

我正在嘗試在mysql中創建觸發器,但無法正常工作

[英]I am trying to make a trigger in mysql, but not working

這是我的觸發器:

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代碼更新它時卻沒有。 可能是什么問題?

您可以這樣做,經我測試,它可以正常工作:

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 ;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM