Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

tự động cập nhật hàng sau một thời gian nhất định

Bạn có 2 tùy chọn để quản lý cả hai tùy chọn này dựa trên khoảng thời gian mà họ chọn.

  1. Lưu trữ thời gian hết hạn với quảng cáo và bao gồm hết hạn> NOW (); trong bất kỳ truy vấn nào để chọn quảng cáo (loại này phủ nhận yêu cầu đối với trường 'hoạt động'.

  2. sử dụng một sự kiện để quản lý điều này.

Phương pháp 1 có thể yêu cầu một số quản trị viên 'dọn dẹp quảng cáo' theo định kỳ.

Phương pháp 2 - bạn chưa thể tạo các sự kiện trong một thủ tục (lần trước tôi đã kiểm tra) nhưng chúng cho phép bạn đặt và quên các loại nhiệm vụ quản trị này mà không cần phải chạy các kiểm tra khác và những gì không nên làm.

Mỗi sự kiện phải có một tên duy nhất nếu không bạn sẽ giết sự kiện đã được chỉ định ...

ví dụ:

<?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);
?>

Sự kiện được lưu trữ trong cơ sở dữ liệu mysql chứ không phải của riêng bạn, vì vậy bạn cần một số quyền cấp quản trị viên để triển khai.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. kết nối excel vba mysql ado

  2. Chèn một hàng và tránh điều kiện đua (PHP / MySQL)

  3. Chuyển đổi giữa nhiều cơ sở dữ liệu trong Rails mà không làm gián đoạn các giao dịch

  4. gỡ lỗi truy vấn mysqli bằng hoặc chết mysqli_error

  5. PHP / mysql:Xếp hạng người dùng theo nhấp chuột