我目前正在PHPmyadmin中编写MySQL中的第一个触发器。我希望这样,当一个表中的项更新时,插入另一个表中的一行。要插入第二个表中的行的几个列由第一个表中更新的值确定。
因此,当表A上发生更新时,我需要在表B中插入一个新行。表B中列的某些值将由更新表中的值定义。触发运行。
请在下面找到触发器。
CREATE TRIGGER `before_categoryiteminstance_update` BEFORE UPDATE ON `TABLEA`
FOR EACH ROW BEGIN
declare f_guidcategoryiteminstance int;
declare f_guidcategory int;
INSERT INTO TABLEB
SET
f_guidcategoryiteminstance =(SELECT guidcategoryiteminstance FROM inserted),
f_guidcategory =(SELECT guidcategory FROM inserted),
guiduser= f_guidcategory,
guidcategoryinstance= f_guidcategoryiteminstance,
number= number +1,
dateofaction= NOW(); END
可以将触发器添加到数据库中。但是,当我尝试更新表A上的一行(这应该导致触发器运行)时,我收到一条错误,指出表Inserted不存在。但是,我认为Inserted应该是一个逻辑表,其中包含触发器初始部分的结果。只有在插件上运行触发器而不是更新时才会出现这种情况吗?如果是这样,是否有等效的更新触发器?