我无法使用3个表格添加触发器?

问题描述:

所以我表1,表2,表3 ...我无法使用3个表格添加触发器?

table 1 has G_Id, G_y 
table 2 has S_ID, G_ID(FK), S_Date 
Table 3 has N_ID, S_ID(FK), N_Date 

我想通过表3 的更新任何新N_date(表3)更新表1 G_Y(不是日期)之后创建触发器计算(N_date - S_date)* 11

我找不出来。

+0

人看着办吧? – qman111 2014-12-07 19:57:02

+0

你能解释一下你想用触发器再次更新哪张表吗?你是句子/解释没有意义。 – Jt2ouan 2014-12-07 20:10:03

+0

这似乎不是一个非常困难的问题,你有什么尝试。你写了什么SQL尝试。你是否研究过ORACLE After Triggers? – Jt2ouan 2014-12-07 20:13:26

假设你使用MySQL,你可以做这样的

CREATE TRIGGER n_date_insert_trigger 
AFTER INSERT ON table3 
FOR EACH ROW 
UPDATE table1 t1 JOIN 
(
    SELECT g_id, DATEDIFF(NEW.n_date, s_date) * 11 g_y 
    FROM table2 t2 
    WHERE s_id = NEW.s_id 
) q ON t1.g_id = q.g_id 
    SET t1.g_y = q.g_y; 

CREATE TRIGGER n_date_update_trigger 
AFTER UPDATE ON table3 
FOR EACH ROW 
UPDATE table1 t1 JOIN 
(
    SELECT g_id, DATEDIFF(NEW.n_date, s_date) * 11 g_y 
    FROM table2 t2 
    WHERE s_id = NEW.s_id 
) q ON t1.g_id = q.g_id 
    SET t1.g_y = q.g_y; 

下面是SQLFiddle演示