MySQL DATE_ADD 函数;如何在表创建时使用另一列值作为日期

问题描述

我有一个用几周做 s.th 的表格,我希望 end 列在 start 列之后 6 天自动设置其值,但我不知道如何引用 { {1}}。

start

有人可以帮忙吗?

最后请原谅我的英语不好(我不是母语)

编辑 -> 我使用 PHPMyAdmin 插入表格没有任何问题,问题出在那里。我在终端中插入了 MariaDB,一切正常。

解决方法

语法错误

CREATE TABLE `weeks`(
    `id` INT AUTO_INCREMENT PRIMARY KEY,`start` DATE UNIQUE NOT NULL,`end` DATE   GENERATED ALWAYS AS (DATE_ADD(`start`,INTERVAL 6 DAY)) UNIQUE,`end2` DATE  NOT NULL UNIQUE DEFAULT  (DATE_ADD(`start`,INTERVAL 6 DAY)),`availablity` INT NOT NULL
);
INSERT INTO weeks (`start`,`availablity`) VALUEs (NOW(),1)
SELECT * FROm weeks
id | start      | end        | end2       | availablity
-: | :--------- | :--------- | :--------- | ----------:
 1 | 2021-06-25 | 2021-07-01 | 2021-07-01 |           1

dbfiddle here