Вставка новой строки при обновлении строки в той же таблице с использованием триггеров MySQL - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь вставить строку в таблицу после обновления строки в этой же таблице.Я пытался сделать это с помощью триггера.Но я обнаружил, что это невозможно сделать в этом методе.

Я пытаюсь достичь этого, у меня есть tbl_eq_maintenance (eq_no, eq_name, last_rep_date, next_rep_date, status)

Значения (EQ-30, беговая дорожка, 08-10-2018, 18-10-2018,0).

Я хочу обновить статус этой строки на «1», а после этого вставить новую строку в ту жеТаблица следующим образом.(EQ-30, беговая дорожка, 18-10-2018,28-10-2018,0).Как я могу сделать это с помощью триггера или если нет, есть ли обходной путь для этого.

Триггер, который я написал, как показано ниже.

DELIMITER $$
CREATE TRIGGER add_maintenance 
    AFTER UPDATE on tbl_eq_maintenance
    FOR EACH ROW
BEGIN
    DECLARE next_rep_date DATE;
    DECLARE new_m_cycle INT(5);

    SELECT m_cycle INTO new_m_cycle FROM tbl_equipments WHERE eq_no = NEW.eq_no;
    SET next_rep_date = DATE_ADD(CURDATE(), INTERVAL new_m_cycle DAY);
    INSERT INTO tbl_eq_maintenance (eq_no,eq_name,last_rep_date,next_rep_date)
    Values (NEW.eq_no,NEW.eq_name,CURDATE(),next_rep_date);

END$$
DELIMITER ;

1 Ответ

0 голосов
/ 20 октября 2018

При обновлении таблицы этот триггер запустится и вставит новую запись в таблицу.

См. Эту ссылку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...