Я хочу установить значение столбца по умолчанию на основе другого столбца и добавить к нему 114 дней - PullRequest
0 голосов
/ 31 марта 2020

Я пробовал это:

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

Я хочу, чтобы столбец 'malacozás_ideje' имел то же значение, что и Дата + 114 дней. Это вообще возможно?

Ответы [ 3 ]

0 голосов
/ 31 марта 2020

Если вы хотите сгенерированный столбец в 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 голосов
/ 31 марта 2020

Вы, похоже, ищете вычисляемый столбец, который вычисляется по умолчанию, но вы используете синтаксис для SQl Server. Вам понадобится ниже для MySQl

ALTER TABLE búgatás ADD malacozás_ideje GENERATED ALWAYS AS DATE_ADD(Dátum, INTERVAL 114 DAYS);
0 голосов
/ 31 марта 2020

Вместо этого вы можете использовать вычисляемый столбец:

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;
...