2014-07-06 112 views
0

我有一個名爲daire的表,它具有名爲Kiraci,D_ID,Sahip的列。 D_ID是PK列。我想要的是當我改變Kiraci值時,我想觸發刪除一行或插入一個新行到另一個表。我試圖創建一個像書面底部的觸發器:創建觸發器語法錯誤

CREATE TRIGGER daireBosalt AFTER UPDATE ON daire 
FOR EACH ROW 
BEGIN 
    IF NEW.Kiraci IS NULL THEN 
    DELETE FROM kontrat WHERE kontrat.D_ID = NEW.D_id; 
ELSEIF NEW.Kiraci IS NOT NULL THEN 
    INSERT INTO kontrat (D_ID, BAy, BGun, BYil, Tutar, Sahip, Sure, Depo, Komisyon) VALUES (NEW.D_id, '01', '01','2014','100', NEW.Sahip,'1','100','100') 
END IF; 
END; 

當我嘗試創建此腳本,它不斷給我語法錯誤。

+0

你改變分隔符?即'DELIMITER \\'在語句前面,用'\\'結束創建,並用'DELIMITER'重置分隔符;' – VMai

+0

您在INSERT後缺少分號。 – VMai

+0

omg yes right thnx :) – user3809204

回答

1

更改分隔符,而你創建觸發器:

delimiter $$ 
CREATE TRIGGER daireBosalt AFTER UPDATE ON daire 
FOR EACH ROW 
BEGIN 
    IF NEW.Kiraci IS NULL THEN 
    DELETE FROM kontrat WHERE kontrat.D_ID = NEW.D_id; 
ELSEIF NEW.Kiraci IS NOT NULL THEN 
    INSERT INTO kontrat (D_ID, BAy, BGun, BYil, Tutar, Sahip, Sure, Depo, Komisyon) VALUES (NEW.D_id, '01', '01','2014','100', NEW.Sahip,'1','100','100') 
END IF; 
END $$ 

delimiter ; 
+0

我已經使用分隔符標籤它仍然給我語法錯誤 – user3809204

+0

您發佈的代碼不會正確更改分隔符。如果您有語法錯誤消息,則應該將其完整發布。 –

+0

1查詢執行,0成功,1個錯誤,0警告 查詢:CREATE TRIGGER daireBosalt UPDATE ON daire FOR EACH ROW之後開始IF NEW.Kiraci爲null,則DELETE FROM kontrat WHERE kontrat ... 錯誤代碼:1064 你的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以在'END IF'附近使用正確的語法; END」在8號線 執行時間:0秒 轉換時間:0秒 總時間:0.022秒 這是錯誤我得到 – user3809204