一旦我向用户表添加了更新后触发器,该表就对数据库变得未知了。
1109-在“字段列表”中取消了Tabelle'k25831_dotlan.user'
触发器:
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
我在类似的问题MySQL Update Statement: Unknown 'table' in 'field list'中发现,没有触发器,拥有名为user的表就没有问题。一旦放下触发器,更新和所有其他查询就会按预期工作。
有关php和mySql的信息:
安装过程已由xampp接管。
答案 0 :(得分:1)
Begin
位于触发器主体的开头。然后,所有其他条件语句/查询/变量赋值等都会出现。
顺便说一下,您的触发器会做什么。如果不访问OLD
和NEW
,则没有任何意义
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 ;