sql >> Databasteknik >  >> RDS >> Mysql

Hur man uppdaterar databasen automatiskt efter att sessionen har löpt ut utan att uppdatera på min sida

Det bästa alternativet är att inte använda en aktiv/ej aktiv flagga i databasen, utan istället använda något som en last_active tidsstämpel. När användaren öppnar en sida uppdaterar du tidsstämpeln till CURRENT_TIMESTAMP() . Och för att avgöra om användaren för närvarande är aktiv, fråga efter WHERE active_timestamp < TIMESTAMPADD(MINUTE, -60, CURRENT_TIMESTAMP())

Se till att du ställer in active_timestamp som en DATETIME skriv in tabellstrukturen. (ALTER TABLE users ADD COLUMN active_timestamp datetime AFTER username' )

Problemet här är att ditt skript ser ut att vilja sparka ut användaren när sessionen är inaktiv. För detta bör du titta på JavaScript, ställa in en timer som räknar ner över 1 timme och om det inte finns någon aktivitet, dirigera om sidan.



  1. Använda varchar(MAX) vs TEXT på SQL Server

  2. MYSQL-uppdatering från samma tabell

  3. ORDER BY Subquery för GROUP BY to JOIN-konvertering

  4. MySQL kan inte lägga till främmande nyckelbegränsning