Table 添加触发器时数据库无法识别

Table gets unknown to database when adding trigger

一旦我向我的用户 table 添加更新后触发器,table 就变得不为数据库所知。

1109 - Unbekannte Tabelle 'k25831_dotlan.user' in 'field list'

触发器:

CREATE TRIGGER `trg_UpdateNewsletterDate` 
AFTER UPDATE 
ON `user` 
FOR EACH ROW 
IF k25831_dotlan.`user`.newsletter = 1 AND k25831_dotlan.`user`.newsletterdate IS NULL 
THEN 
BEGIN 
UPDATE k25831_dotlan.`user` SET k25831_dotlan.`user`.newsletterdate = NOW() WHERE k25831_dotlan.`user`.id = k25831_dotlan.`user`.id; 
END; 
END IF 

正如我在类似问题 中发现的那样,如果没有触发器,调用 table 用户是没有问题的。只要我放下触发器,更新和任何其他查询就会按预期工作。

关于php和mySql的信息:

安装过程已由 xampp 接管。

Begin 出现在触发器主体的开头。之后,所有其他条件 statements/queries/variable 赋值等都会出现。

对了,你的Trigger是做什么的。不访问OLDNEW,没有任何意义

DELIMITER $$

CREATE TRIGGER `trg_UpdateNewsletterDate` 
AFTER UPDATE ON `k25831_dotlan`.`user` 
FOR EACH ROW  
  BEGIN 

    IF `k25831_dotlan`.`user`.`newsletter` = 1 AND 
       `k25831_dotlan`.`user`.`newsletterdate` IS NULL THEN

      UPDATE `k25831_dotlan`.`user` 
      SET `k25831_dotlan`.`user`.`newsletterdate` = NOW() 
      WHERE `k25831_dotlan`.`user`.`id` = `k25831_dotlan`.`user`.`id`;
    END IF; 
END $$

DELIMITER ;