扳机赢了';t在MySql工作台中运行

扳机赢了';t在MySql工作台中运行,mysql,sql,database-trigger,Mysql,Sql,Database Trigger,我已经更新了我的问题,但仍然有问题。现在,它显示了我的一个红色十字接近值。我不知道语法有什么问题 DELIMITER $$ CREATE TRIGGER PendingPublish AFTER INSERT ON TopicPending FOR EACH ROW BEGIN INSERT INTO Topics (Title,Description,Question1,Qustion2,Question3,Question4,UserID) VALUES (NEW.Tit

我已经更新了我的问题,但仍然有问题。现在,它显示了我的一个红色十字接近值。我不知道语法有什么问题

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 ;

触发器具有表TopicPending中的新值,因此要访问列TopicApproved,只需在其前面加上new。不需要选择它。见下文

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;

不是100%确定,但相当确定的是,
INSERTED
特定于MS Sql Server,不受MySQL支持。在MySQL中,您可以使用
NEW.columnName
访问插入的值。@Barmar NEW。在插入的查询列或选择查询列之前?@samscoot没有
select
。只需使用
值(NEW.Title、NEW.Description等)