我正在尝试在我的表上创建一个触发器,以便当我插入数据时,它会尝试从一列(注释)中获取数据并使用数据更新另一个表的(masterData)列注释(附加)。如果找不到,我希望将插入语句复制到不同的表(failedtofind)。我的触发器在下面,但它报告我的 IF 语句存在语法错误,我无法让它正常工作:
DELIMITER $$
TRIGGER `testdb`.`testTable`
AFTER INSERT ON `testdb`.`testTable`
FOR EACH ROW
BEGIN
IF ((SELECT PrimaryID FROM testdb.masterData WHERE PrimaryID = NEW.PrimaryID) > 0 )
UPDATE masterData AS t
SET t.Additional = NEW.Notes
WHERE t.PrimaryID = NEW.PrimaryID;
ELSE
INSERT IGNORE INTO failedtofind SET (all the columns);
END IF;
END$$
另外,这是我应该这样做的方式吗?我是数据库新手,所以一如既往,如果我做错了什么,请随时纠正我。