В моей базе данных у меня есть таблица «fine», в этой таблице у меня есть три поля: issue_date, expiry_date и fine_amount. Я хочу, чтобы expiry_date был вычислен с даты выпуска. Срок годности всегда должен иметь 20 дней больше, чем issue_date, поэтому я написал запрос как:Невозможно создать вычисленное поле с date_add в SQL
ALTER TABLE fine ADD
expiry_date AS DATE_ADD(CURRENT_DATE,INTERVAL 20 DAY)
Но есть ошибка синтаксиса. Я не могу найти решение.
Также я хочу, чтобы fine_amount составлял 10 * (разница в днях между текущей датой и датой истечения срока действия, если текущие дни превышают дату истечения срока действия). Как мне это сделать?
Вы хотите изменить текущую таблицу, чтобы иметь вычисленный столбец, или создать новую таблицу в целом? –
Изменение таблицы «плата», но создание новой таблицы не сильно беспокоило бы. –
Проверьте [документацию] (https://dev.mysql.com/doc/refman/5.7/en/create-table- генерироваться-columns.html). Вы не можете реализовать тонкую логику в вычисленном столбце, потому что формула не является детерминированной. –