0
我想在更新记录后更新一列“状态”,并且只有在四个特定列不为空时。这是我的触发器,但它不能正常工作。更新后的MySQL触发器 - 如果列不为空,则更新
CREATE TRIGGER `after_thesis_rate_upade`
AFTER UPDATE ON `theses`
FOR EACH ROW IF (new.promoterRate IS NOT NULL AND new.promoterNote IS NOT NULL AND new.reviewerNote IS NOT NULL AND new.reviewerRate IS NOT NULL)
THEN
UPDATE theses SET new.status="Oceniona" WHERE old.id=new.id;
END IF;
当我更新这些列中的状态栏仍是此相同,在尝试变化值在MySQL phpMyAdmin的抛错误“无法改变,因为有设置触发器”。你能告诉我什么是错的吗?
我做了这个SET new.status = “Oceniona”;它会抛出错误#1362 - 在触发后不允许更新NEW行 –
可能应该是一个'BEFORE UPDATE'触发器然后; 'AFTER'意味着数据已被写入。 'SET OLD.status'_might_可以在'AFTER UPDATE'中工作,但是我没有处理触发器就没有足够的可以确定而不需要自己尝试。 – Uueerdo
好吧,只是看触发文档的另一个问题,它看起来只有NEW字段可以设置,并且只在BEFORE [INSERT | UPDATE]触发器。 – Uueerdo