Mysql
 sql >> Baza danych >  >> RDS >> Mysql

automatycznie aktualizuje wiersz po określonym czasie

Masz dwie opcje zarządzania tym obiema w oparciu o wybraną skalę czasową.

  1. Przechowuj czas wygaśnięcia z reklamą i dołącz wygaśnięcie> TERAZ(); we wszelkich zapytaniach dotyczących wybranych reklam (ten rodzaj neguje wymaganie dotyczące pola „aktywne”).

  2. użyj wydarzenia, aby nim zarządzać.

Metoda 1 może wymagać od administratora okresowego „czyszczenia reklam”.

Metoda 2 - nie możesz jeszcze tworzyć zdarzeń w procedurze (ostatnio sprawdzałem), ale pozwalają one ustawić i zapomnieć o tego rodzaju obowiązkach administracyjnych bez konieczności uruchamiania innych sprawdzeń i innych czynności.

Każde wydarzenie musi mieć unikalną nazwę, w przeciwnym razie zabijesz już określone wydarzenie...

przykład:

<?php

$qry = "insert into ads values ( 'x', 'y', 'z' );"; 
/* db execute qry (pdo or what ever) */
$adId = // retriev a unique reference for ad.
$days = $_POST['expire'] == 16 ? 16 : 8;

$qry = "CREATE EVENT updateAd_".$adId."
    ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL ".$days." DAY
    ON COMPLETION NOT PRESERVE
    DO
    update ads set active = 'false' where ad_id = ".$adId.";";
// db execute qry (pdo or what ever);
?>

Zdarzenie jest przechowywane w bazie danych mysql, a nie w Twojej, więc do jego wdrożenia potrzebne są uprawnienia administratora.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Połącz losowo dwa słowa z bazy danych MySQL

  2. Zmienne MySQL przechowujące nazwę bazy danych

  3. Co oznaczają znaki \x1a

  4. Konfiguracja MySQL / CodeIgniter na OpenShift

  5. Konfiguracja eclipselink + Spring MVC + MySql przy użyciu konfiguracji Java (brak konfiguracji XML)