我有一个PHP应用程序,将'Pass','Fail'或'NA'插入字段TEST1,TEST2,TEST3 ......到TEST15。
我有一个名为OVERALL的字段,如果任何TEST1-TEST15字段包含'Fail',则需要使用'FAIL'自动更新。
我很确定我需要使用包含更新语句和CASE或IF的触发器,但我无法确定确切的语法。
任何人都可以帮助一个MySQL菜鸟吗?我正在使用MySQL Server版本:5.1.63-0 + squeeze1(Debian)。
答案 0 :(得分:0)
你可能会做类似
的事情CREATE TRIGGER triggerName AFTER INSERT ON yourTable
FOR EACH ROW BEGIN
IF NEW.yourColumn = 'Fail' THEN
UPDATE otherField set column = 'Fail'
END IF;
END
这就是理论上这样一个触发器的样子,但是我必须说我不是100%的语法,因为我已经有一段时间了,因为我在mysql上工作了。
您可以查看手册以获取触发器上的更多信息 http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html
答案 1 :(得分:0)
好的,这是另一个TRIGGER你可以尝试一下。我测试了它,如果插入行的test1或test2中的值为FAIL,它应该将整个字段更改为FAIL。除了您要插入的行之外,它不会为任何其他行设置整体字段。
TRIGGER的代码:
DELIMITER |
CREATE TRIGGER setoverall BEFORE INSERT ON table_name
FOR EACH ROW BEGIN
IF NEW.test1 = 'FAIL' OR NEW.test2 = 'FAIL' THEN
SET NEW.overall = 'FAIL';
END IF;
END;
|
您需要做的只是输入正确的表名,并检查表中的所有其他13个测试列(如果它们的值为FAIL)。我希望这对你有所帮助,如果有什么不清楚,请告诉我。