2011-03-25 32 views
0

嗨 我已經創建了一個觸發器,我想更新一個表字段時,插入另一個字段發生。但我不知道如何知道它更新相同的用戶排誰是這裏將是seneriomysql觸發器在更新我的表中有一些問題

一些代碼和數據庫 - > admin_reg_abr

'id course_limit username 
10   0    ahmad ' 

注:id爲primry關鍵

- > abroad_course

'id uni_id username 
1  10  ahmad' 

注意:uni_id是foriegn鍵或與admin_reg_abr中的id相同。

我寫下面的代碼觸發:

DROP TRIGGER IF EXISTS ahmad.AI_course_each //

創建觸發器ahmad.AI_course_each INSERT ON ahmad.abroad_course FOR EACH ROW之後開始

UPDATE admin_reg_abr SET admin_reg_abr.course_limit = admin_reg_abr.course_limit + 1 WHERE admin_reg_abr.id = new.id; END //

我想更新相同的ID如何插入表中,但它不工作。

回答

1

沒有你的意思是:

DROP TRIGGER IF EXISTS ahmad.AI_course_each// 

CREATE TRIGGER ahmad.AI_course_each 
AFTER INSERT ON ahmad.abroad_course FOR EACH ROW 
BEGIN 
    UPDATE admin_reg_abr SET 
     admin_reg_abr.course_limit = admin_reg_abr.course_limit + 1 
    WHERE admin_reg_abr.id = new.uni_id; 
END // 

注意,在你的代碼NEW.id點無處admin_reg_abr表

一兩件事。你在說UPDATE觸發觸發器,所以,你可能需要另一個觸發器:

DROP TRIGGER IF EXISTS ahmad.AI_course_each// 

CREATE TRIGGER ahmad.AI_course_each 
AFTER UPDATE ON ahmad.abroad_course FOR EACH ROW 
BEGIN 
    UPDATE admin_reg_abr SET 
     admin_reg_abr.course_limit = admin_reg_abr.course_limit + 1 
    WHERE admin_reg_abr.id = new.uni_id; 
END // 
+0

waw太好了,你是救命謝謝bro.its ok – 2011-03-25 11:33:25