2014-01-10 42 views
2

我正在創建一個應該運行的觸發器查詢1如果來自新插入行的字段statuscode的值是200.但是如果statuscode就是說300行程查詢2代替。這是所有可能的MySQL?MySQL:有條件按某個字段運行查詢1或查詢2

我嘗試了第一個想到的東西,但它顯然是錯誤的。

CREATE TRIGGER mytrigger AFTER INSERT ON tableA 
    FOR EACH ROW BEGIN 
    IF(new.statuscode = 200, 
     (DELETE FROM tableB WHERE new.guid = tableB.guid), 
     (UPDATE tableB SET is_complete = 0 WHERE new.guid = tableB.guid)) 
END 
// 
DELIMITER ; 

回答

0

/ELSE在MySQL程序如果語法是:

IF (NEW.statuscode = 200) THEN 
    DELETE FROM tableB WHERE new.guid = tableB.guid; 
ELSE 
    UPDATE tableB SET is_complete = 0 WHERE new.guid = tableB.guid; 
END IF; 

以下是觸發語法的文檔: http://dev.mysql.com/doc/refman/5.5/en/if.html

0

我想你只是有你的IF語法錯誤。如果語句應該有THEN和ENDIF關鍵字。

http://dev.mysql.com/doc/refman/5.0/en/if.html

我沒有在6個月左右使用MySQL的,所以希望這句法是正確的:

CREATE TRIGGER mytrigger AFTER INSERT ON tableA 
    FOR EACH ROW BEGIN 
    IF new.statuscode = 200 THEN 
     DELETE FROM tableB WHERE new.guid = tableB.guid; 
    ELSE 
     UPDATE tableB SET is_complete = 0 WHERE new.guid = tableB.guid; 
    END IF; 
END