#mysql #sql
Вопрос:
У меня есть таблица sql. Каждый элемент имеет столбец с именем «Истекший срок» с типом даты-времени и столбец с именем «isExpired». Я хочу обновить цвета «isExpired», когда истечет срок действия > Дата-время.Сейчас
Комментарии:
1. Это звучит так, как будто вы дублируете данные в строке — если вы знаете дату истечения срока действия, зачем вам нужен флаг с истекшим сроком действия?
Ответ №1:
Воспользуйся update
:
update t
set isExpired = 0
where expirydate > now();
Я предполагаю, что вы хотите, чтобы они были «не просрочены».
Тем не менее, на самом деле вам не нужны обе колонки. Вы могли бы использовать представление:
create view v_t as
select t.*, coalesce(expirydate < now(), 0) as isExpired
from t;
Комментарии:
1. Или используйте Сгенерированный столбец: dev.mysql.com/doc/refman/5.7/en/…
2. @obe . . . Не могу.
now()
это запрещено.