2011-03-25 39 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