Я хотел бы знать, как я могу автоматически удалить запись, когда дата истекла, я создаю сайт бронирования авиабилетов. Мне нужно удалить из моей базы данных mysql все истекшие детали полета. Я где-то читал, что могу использовать cron, но я понятия не имею, как это сделать. Любая справка для скрипта будет очень полезна.
Вы можете попробовать использовать MySQL Events
для этого:
CREATE EVENT IF NOT EXISTS `dbName`.`eventName` ON SCHEDULE EVERY 1 DAY // or 1 HOUR COMMENT 'Description' DO BEGIN DELETE FROM `dbName`.`TableName` WHERE `DateCol` < NOW(); END
Учтите, что планировщик событий MySQL должен быть включен на вашем сервере:
SET GLOBAL event_scheduler = ON;
Больше информации здесь .
Удаление записей – это не очень хорошая идея, я предлагаю вам добавить ActiveFrom и ActiveTo DateTime Column в таблицу Details, а затем не отображать истекшие записи в вашем лицевом конце.
Вам необходимо, чтобы служба проверяла истекшие записи и периодически удаляла их. Вы должны использовать этот SQL:
УДАЛИТЬ ТЕМУ ТРЕБУЕТСЯ WHERE RecordDate <@Expiration
Крон наиболее подходит в вашей ситуации.
Если вы используете CPanel, вы можете настроить свое задание cron
Используйте CRON Jobs. Посмотрите на приведенное ниже представление.
Minutes [0-59] | Hours [0-23] | | Days [1-31] | | | Months [1-12] | | | | Days of the Week [Numeric, 0-6] | | | | | * * * * * home/path/to/command/the_command.sh
Если вы хотите запланировать запуск задачи каждую субботу в 8:30, это, скорее всего, будет выглядеть следующим образом.
30 8 * * 6 home/path/to/command/the_command.sh
Просто поиграйте со своими настройками, и вы в конце концов получите его.