2016-02-01 3 views
0

Я работаю на веб-платформе, из которой учитель может назначать задания ученикам. Каждая задача содержит хотя бы одну или несколько подзадач.Обновление родительской таблицы от реферирования

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 | 
=====================   ===================== 

Таблицы members, task и subtask не показаны, как это здесь нет необходимости.

Мне интересно, может ли строка updated_on обновляться с CURRENT_TIMESTAMP всякий раз, когда обновляется строка в таблице Sub_task_data (с соответствующим внешним ключом)?

Спасибо.

+1

Да, google для «триггера mysql». – fancyPants

ответ

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 см руководство для получения дополнительной информации.

+0

Спасибо! Отлично! – Chris

Смежные вопросы