Как обновить статус данных в таблице SQL, когда срок их действия истек

#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() это запрещено.