从引用子级更新父表

时间:2016-02-01 09:35:26

标签: mysql sql

我正在制作一个网络平台,教师可以从中为学生分配任务。 每个任务至少包含一个或多个子任务。

Task_data是一个将任务链接到每个学生的表格,可能包含每个学生在所述任务上的进度数据。

Sub_task_data是一个将任务数据链接到每个子任务的表,可能包含每个学生在所述子任务上的进度数据。

我有以下表结构:

=====================            =====================
|    Task_data      |            |   Sub_task_data   |
=====================            =====================
|     (PK) id       |            |     (PK) id       |
|   (FK) task_id    |  1 ----- n | (FK) sub_task_id  |
|  (FK) member_id   |            | (FK) task_data_id |
|     updated_on    |            |    is_completed   |
=====================            =====================

表格memberstasksubtask没有说明,因为这里没有必要。

我想知道只要updated_on表(带有相关的外键)中的一行更新,CURRENT_TIMESTAMP行是否可以用Sub_task_data自动更新?

感谢。

1 个答案:

答案 0 :(得分:2)

你可以试试这个:

DELIMITER $$
CREATE TRIGGER update_time_taskdata 
AFTER UPDATE ON Sub_task_data FOR EACH ROW 
BEGIN 
    UPDATE Task_data
       SET updated_on = NOW()
     WHERE id = NEW.task_data_id;
END;
$$
DELIMITER ;

有关详细信息,请参阅CREATE TRIGGER手册。