Arhn - архитектура программирования

Как удалить строку mysql по прошествии времени?

Я понятия не имею, с чего начать с этого:

У меня есть база данных, в которой хранятся postID и Date.

Я хочу, чтобы мой веб-сайт автоматически удалял все строки, где Date меньше, чем сегодня. Этот скрипт вообще не может иметь никакого пользовательского ввода. Никаких нажатий кнопок, ничего. Скрипт должен запускаться каждый день в полночь.

Я искал повсюду что-то, что делает это, и я абсолютно ничего не нашел.


  • Для этого есть несколько аспектов: (1) написание оператора DELETE; (2) создание сценария, выполняющего оператор DELETE; (3) настройка сценария для запуска каждую ночь в полночь. С кем из них вам нужна помощь? 26.03.2012
  • Мне нужна была помощь, чтобы понять, как заставить мой код запускаться автоматически без участия пользователя. Все ответы ниже указывали на CRON, поэтому я посмотрю на это. 26.03.2012

Ответы:


1

Вы можете использовать скрипт PHP и использовать задание cron на своей cpanel.

Пример:

cronjobcommand.php

<?php 
 include 'your_db_connection';
 mysql_query("DELETE FROM your_table_name WHERE Date < NOW()");
?>

Я приложил скриншот ниже для вашей дополнительной справки.

введите здесь описание изображения

26.03.2012

2

Для тех, кто использует виртуальный хостинг, такой как 1and1, и не может использовать cron, вот 2 альтернативы:

  • события mysql позволяют разместить в mysql триггер времени, который будет выполняться, когда вы захотите, без необходимости запуска любого пользовательского ввода

  • если вы не можете создавать события mysql, потому что вы находитесь на 1 и 1 :(, альтернативой является использование webcron

Вам просто нужно сообщить webcron URL-адрес php-скрипта, который вы хотите запустить, и они будут запускать его для вас с нужными вам интервалами.

15.04.2014

3

Зачем использовать cronjobs каждый день ?? Почему бы не фильтровать данные на выходе. Например, при выборе проверьте, совпадает ли дата публикации с сегодняшним днем, добавив простой where:

SELECT * FROM `posts`
WHERE (DATE(`post_date`) = DATE(NOW()));

Таким образом, вам не обязательно выполнять управление базой данных/cronjobs в какое-то особое время, и оно будет использоваться только для управления базой данных. После этого вы можете удалить ненужные данные в любое время с помощью команды mysql, например:

DELETE FROM `posts` WHERE (
    DATE(`post_date`) < DATE(NOW())
)
10.06.2015
  • Предположим, у меня есть случай, когда в моей базе данных есть запись, которая была опубликована в конкретную дату, и ее нужно удалить в определенный крайний срок. что вы будете делать, чтобы запустить скрипт автоматически? 29.07.2016
  • @sudhakarphad Извините за мой поздний ответ; в этом случае вы можете просто добавить время крайнего срока к вашему сравнению (post_date + крайнее время). 28.08.2016

  • 4

    Большинство хостов предоставляют службу cron(8), которая может выполнять команды в определенное время. Вы используете программу crontab(1) для управления файлом crontab(5), который описывает, когда какие команды запускать.

    Вам доступно множество функций, но если вы пишете программу (скрипт оболочки, php-скрипт, программу на C и т. д.), которая запускает соответствующие команды MySQL, вы можете вызывать программу через cron(8) совершенно автоматически.

    Запустите crontab -e, чтобы отредактировать текущий файл crontab(5). Если такового не существует, надеюсь, вы получите его с полезным заголовком. Если нет, скопируйте это:

    # m h  dom mon dow   command
    

    В столбцах указаны минуты, часы, день месяца, месяц и день недели для выполнения команд. Все числа в столбцах, по сути, объединяются вместе, чтобы решить, когда запускать команды.

    Таким образом, полночь каждую ночь будет выглядеть так:

    0 0 * * * /path/to/executable
    

    Он удивительно гибкий, так что потратьте некоторое время на документацию, и вы найдете для него множество применений.

    26.03.2012

    5

    Вы должны установить для него cron задание (запланированное задание).

    cron job — это автоматическая установка программы для операционных систем Linux и Unix. Это позволяет пользователю выполнять несколько команд или функций в определенное время и дату.

    у вас есть cron Job в настройках cpanel. сначала вам нужно сделать php-скрипт с вашей логикой для удаления записи после каждой даты. взять дату с сервера и написать скрипт для удаления.

    затем перейдите на вкладку cron в вашей cpanel и настройте временной интервал для запуска cron и укажите путь к файлу вашего php-скрипта.

    26.03.2012

    6

    MySQL не имеет планировщика задач. Поэтому вам нужно использовать планировщик задач вашей операционной системы (CRON под Linux) или запускать базовый скрипт проверки задач во время скрипта главной страницы (на другой странице, которая должна отображать изменяющиеся данные) .

    26.03.2012
  • Это не правда. MySQL имеет планировщик событий, реализованный в версии 5.1.6 (2006-02-01). Дополнительная информация: Планировщик событий MySQL. 24.08.2014
  • MySQL имеет планировщик событий 14.06.2018
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..