Как автоматически обновить переменную DATE? - PullRequest
0 голосов
/ 12 апреля 2019

Я создал таблицу для хранения версии программного обеспечения (это пример) со столбцом идентификатора, датой начала и датой окончания. Дата начала известна, когда запись вставлена, но не дата окончания, которая зависит от даты создания новой версии.

Моя идея состоит в том, чтобы ввести переменную как NULL:

CREATE TABLE table1 (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
start_date DATE NOT NULL,
end_date DATE,
);

После создания новой версии значение NULL изменяется на реальную дату. Есть ли способ сделать это автоматически, когда новая запись вставлена ​​в таблицу?

РЕДАКТИРОВАТЬ: Я пытался это в БД Fiddle:

CREATE TABLE kit (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(45), start 
DATE, end DATE); 

INSERT INTO kit (name, start) 
VALUES("V1.0", "2018-09-18");

DELIMITER //

CREATE TRIGGER update_version AFTER INSERT ON kit 
  FOR EACH ROW 
    BEGIN 
    SET OLD.end = CURDATE();
END // 

DELIMITER ;

INSERT INTO kit (name, start) VALUES("V2.0", "2019-04-16");

После этого я получил эту ошибку:

Schema Error: Error: ER_TRG_CANT_CHANGE_ROW: Updating of OLD row is not 
allowed in trigger

Есть ли способ сделать это?

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