No es necesario eso que pides y ademas es peligroso... estas intentando guardar una informacion que se puede calcular a partir de otra que ya tienes guardada.... se podria construir un proceso que haga lo que pides pero si por lo que sea un dia falla te puede quedar la bbdd en estado incoherente....
Supongo que quando dices
Cita: ...la fecha de la factura es mayor a 30 dias que el campo estado sea 'vencida' y si es menor a 30 dias estado = 'Vigente'....
te refieres a 30 dias respecto de la fecha actual.... luego
Facturas vencidas
Facturas vigentes
Todas las facturas
Y el campo estado no lo necesitas para nada!!!
Ten en cuenta que CURDATE() será la fecha del servidor.