触发器不会 运行 在 MySql WorkBench
Trigger won't run in MySql WorkBench
我已经更新了我的问题,但问题仍然存在。现在它在 VALUES 附近显示我的红叉。我不知道语法有什么问题
DELIMITER $$
CREATE TRIGGER PendingPublish
AFTER INSERT ON TopicPending
FOR EACH ROW
BEGIN
INSERT INTO Topics (Title,Description,Question1,Qustion2,Question3,Question4,UserID)
VALUES (NEW.Title,NEW.Descritpion,NEW.Question1,NEW.Question2,NEW.Question3,NEW.Question4,NEW.UserID)
FROM TopicPending
WHERE NEW.TopicApproved = 'YES'
END;$$
DELIMITER ;
您的触发器具有来自 table TopicPending 的新值,因此要访问列 TopicApproved,您只需在其前面加上 New。不需要 select 它。见下文。
IF NEW.TopicApproved = 'YES' THEN
INSERT INTO Topics (Title,Description,Question1,Qustion2,Question3,Question4,UserID)
VALUES (NEW.Title,NEW.Description,NEW.Question1,NEW.Question2,NEW.Question3,NEW.Question4,NEW.UserID);
END IF;
我已经更新了我的问题,但问题仍然存在。现在它在 VALUES 附近显示我的红叉。我不知道语法有什么问题
DELIMITER $$
CREATE TRIGGER PendingPublish
AFTER INSERT ON TopicPending
FOR EACH ROW
BEGIN
INSERT INTO Topics (Title,Description,Question1,Qustion2,Question3,Question4,UserID)
VALUES (NEW.Title,NEW.Descritpion,NEW.Question1,NEW.Question2,NEW.Question3,NEW.Question4,NEW.UserID)
FROM TopicPending
WHERE NEW.TopicApproved = 'YES'
END;$$
DELIMITER ;
您的触发器具有来自 table TopicPending 的新值,因此要访问列 TopicApproved,您只需在其前面加上 New。不需要 select 它。见下文。
IF NEW.TopicApproved = 'YES' THEN
INSERT INTO Topics (Title,Description,Question1,Qustion2,Question3,Question4,UserID)
VALUES (NEW.Title,NEW.Description,NEW.Question1,NEW.Question2,NEW.Question3,NEW.Question4,NEW.UserID);
END IF;