Mysql
 sql >> Database >  >> RDS >> Mysql

aggiorna il valore della colonna dopo l'inserimento e il periodo di tempo

Questo probabilmente non è l'approccio giusto. Voglio dire, potresti impostare un evento che viene elaborato per ogni riga, ma ciò potrebbe aggiungere molto carico al tuo database.

Invece, se status sta semplicemente dicendo che la riga ha meno o più di un giorno, inserisci una data di creazione nella tabella e usa una vista:

create view v_table as
     select t.*, (creation_date >= date_sub(now(), interval 1 day) as status
     from table t;

Se status può essere modificato con altri mezzi, quindi chiamalo qualcosa come _status e fai:

create view v_table as
     select t.*,
            (case when creation_date >= date_sub(now(), interval 1 day then 1 else _status end) as status
     from table t;