我无法使用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
我找不出来。
答
假设你使用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演示
人看着办吧? – qman111 2014-12-07 19:57:02
你能解释一下你想用触发器再次更新哪张表吗?你是句子/解释没有意义。 – Jt2ouan 2014-12-07 20:10:03
这似乎不是一个非常困难的问题,你有什么尝试。你写了什么SQL尝试。你是否研究过ORACLE After Triggers? – Jt2ouan 2014-12-07 20:13:26