2011-08-02 140 views
0
delimiter $$ 
drop TRIGGER if EXISTS upflttyprateTrig 
create TRIGGER upflttyprateTrig 

AFTER UPDATE ON flttyprate 
FOR EACH ROW BEGIN 

INSERT INTO `histflttyprate` (
       `flttyprate_Id`, 
       `flttyprate_Flttyp_Id_Fk`, 
       `flttyprate_Date_Eff`, 
       `flttyprate_Date_Ineff`, 
       `flttyprate_IFR`, 
       `flttyprate_Single`, 
       `flttyprate_Multi`, 
       `flttyprate_Rate_Per_Hr`, 
       `flttyprate_Night_Surchage`, 
       `flttyprate_Status`, 
       `flttyprate_Token`) 
VALUES (  
       NEW.flttyprate_Id, 
       NEW.flttyprate_Flttyp_Id_Fk, 
       NEW.flttyprate_Date_Eff, 
       NEW.flttyprate_Date_Ineff, 
       NEW.flttyprate_IFR, 
       NEW.flttyprate_Single, 
       NEW.flttyprate_Multi, 
       NEW.flttyprate_Rate_Per_Hr, 
       NEW.flttyprate_Night_Surchage, 
       NEW.flttyprate_Status, 
       NEW.flttyprate_Token); 

END$$ 

不工作,爲什麼有什麼實際的語法mysqlversion 5.0SQL觸發器工作不幫我

+0

「不工作」 是一個非常貧窮的問題說明。請清楚地說明它給你什麼樣的錯誤,你得到了什麼樣的輸出,以及你應該返回什麼。 – Mat

+0

什麼是實際的MySQL版本? – Devart

回答

0

的「IF EXISTS」子句中DROP TRIGGER語句不支持。 並在'DROP TRIGGER ...'語句後添加分隔符。


編輯 閱讀從information_schema觸發的所有腦幹的信息。 triggers表;然後放下觸發器。在應用程序中執行或寫入存儲過程。

例子:

DELIMITER $$ 

CREATE PROCEDURE drop_trigger() 
BEGIN 
    SET @exist = NULL; 

    SELECT 1 
    INTO 
    @exist 
    FROM 
    information_schema.triggers 
    WHERE 
    trigger_schema = 'test' 
    AND trigger_name = 'trigger1'; 

    IF @exist IS NOT NULL THEN 
    DROP TRIGGER test.trigger1; 
    END IF; 

END 
$$ 

DELIMITER ; 
+0

[是的是](http://dev.mysql.com/doc/refman/5.0/en/drop-trigger.html) – Mat

+0

我想正確放置觸發語法fot it – sunil

+0

我已經檢查過。 IF EXISTS支持,但在MySQL - 5.0.32 http://dev.mysql.com/doc/refman/5.0/en/drop-trigger.html – Devart