如何自动更新DATE变量?

时间:2019-04-12 10:13:44

标签: mysql datetime

我创建了一个表,用于存储带有ID列,开始日期和结束日期的软件版本(作为示例)。插入记录时知道开始日期,但不知道结束日期,结束日期取决于新版本的创建日期。

我的想法是将变量输入为NULL:

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

创建新版本后,NULL值将更改为实际日期。将新记录插入表时,有什么方法可以自动执行此操作?

编辑:我在DB 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

有什么办法吗?

0 个答案:

没有答案