2013-10-16 28 views
2

MySQL的触发更新时间戳如果关键字改变

Set field to automatically insert time-stamp on UPDATE?

我试图创建一个适合我的需要触发的,但我看到使用旧的和新的关键字不方便。

我有2个表相关,documentskeywordsDocuments可以有很多关键字,关键字必须有一个文件。

我能够通过GUI修改关键字,如果我改变keyword,该Document.update_timecurrent_timestamp()

改变我怎样才能keywords表链接的事件来触发document.update_time更新?

CREATE TRIGGER document_update 
AFTER UPDATE ON keywords 
FOR EACH ROW BEGIN 
IF(OLD.value != NEW.value) 
THEN 
UPDATE documents 
SET documents.update_time = current_timestamp() 
WHERE documents.id = NEW.document_fk_id 
END 

documents我有一个类似扳机。

是否可以代替重复触发代码,keywords' trigger转发呼叫documents trigger?或者我应该重复这些代码?

回答

0
delimiter | 
CREATE TRIGGER keywords_updae AFTER UPDATE ON keywords 
FOR EACH ROW BEGIN 
UPDATE document SET document.update_time= NOW() 
WHERE documents.id = OLD.id AND documents.value != OLD.value; 
END; 
| 
+0

谢谢,我可以转发触发到另一个触发器,而不是重复'文档'更新触发器的代码吗? – JorgeeFG