我想根据另一列设置默认列值,并为其添加114天

问题描述 投票:0回答:3

我尝试过:

ALTER TABLE búgatás 
    ADD malacozás_ideje AS DATEADD(DAY, 114, Dátum);

我希望'malacozás_ideje'列的值与Dátum+ 114天相同。这甚至可能吗?

mysql sql ddl alter-table
3个回答
0
投票

如果要在MySQL中生成列:

ALTER TABLE búgatás ADD malacozás_ideje date
    generated always as (Dátum + interval 114 day);

如果您只想初始化它:

ALTER TABLE búgatás ADD malacozás_ideje date;

UPDATE búgatás
    SET malacozás_ideje date = (Dátum + interval 114 day);

0
投票

您可以改用计算列:

ALTER TABLE búgatás ADD malacozás_ideje DATETIME AS (Dátum + INTERVAL 114 DAY);

这将为您提供一个虚拟列,其值由计算规则定义。

另一方面,如果您要创建一个新列并为其分配新值,则可以稍后对其进行修改:

ALTER TABLE búgatás ADD malacozás_ideje DATETIME;
UPDATE búgatás SET malacozás_ideje  = Dátum + INTERVAL 114 DAY;

0
投票

您似乎正在寻找默认情况下会被计算的计算列,但您使用的语法是SQl Server。您需要在下面输入MySQl

ALTER TABLE búgatás ADD malacozás_ideje GENERATED ALWAYS AS DATE_ADD(Dátum, INTERVAL 114 DAYS);
© www.soinside.com 2019 - 2024. All rights reserved.