MySQL: создать строку в таблице с истечением срока годности -- mysql поле с участием sql пол Связанный проблема

MYSQL: Create row in table with expiration date


1
vote

проблема

русский

Hello Возможная вставьте строку в таблицу с датой истечения срока годности и когда достигнута дата истечения срока действия, поэтому строка автоматически удаляется? Или я должен создать только один столбец с датой истечения срока и при сортировке, проверяя это значение для игнорирования?

Английский оригинал

Hello is possible INSERT row to table with expiration date and when the expiration date is reached so row are automatically deleted? Or i only must create one column with expiration date and when sorting checking this value for ignore?

</div
     

Список ответов

1
 
vote
vote
Лучший ответ
 

Ваша потребность выглядит больше похоже на событие Если вы хотите, не хотите добавлять столбец срока годности, чем

 <код> TimeSpan1  

в противном случае

 <код> TimeSpan2  

;

Примечание что планировщик событий mysql должен быть включен на вашем сервере:

 <код> TimeSpan3  
 

Your need looks more like an Event IF you want not want to add expiration date column than

CREATE EVENT delete_event ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY ON COMPLETION PRESERVE DO BEGIN       DELETE FROM Your_table  WHERE date>= logic for expiration_date   ; END; 

otherwise

DELIMITER $$ CREATE EVENT Delete ON SCHEDULE EVERY 1 DAY DO BEGIN   DELETE   FROM TABLE  WHERE `date_expires` < CURRENT_TIMESTAMP(); END$$ DELIMITER  

;

NOTE that MySQL Event Scheduler need to be enabled on your server:

SET GLOBAL event_scheduler = ON; 
</div
 
 
2
 
vote

Вы не можете сделать это непосредственно в базе данных. Вы можете сделать это, планируя событие или работу, которая делает удаление. Вы можете запланировать событие для каждого удаления.

Я думаю, что лучший подход, хотя, это использовать вид:

 <код> create view v_t as     select t.*     from t     where expiration_date > now();   

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

 

You cannot do this directly in the database. You can do this by scheduling an event or job that does the delete. You can schedule an event for each deletion.

I think a better approach, though, is to use a view:

create view v_t as     select t.*     from t     where expiration_date > now(); 

This ensures that the row is not available at the instant the expiration date is no longer in the future. You can then remove the rows at your leisure. Deleting rows can put a load on the database, so you might want to wait until the load is lighter.

</div
 
 

Связанный проблема

1  Не удается подключиться к MySQL с помощью HostName WildCard  ( Cant connect to mysql with hostname wildcard ) 
Я установил <код> MySQL на мой Mac (с установщиком MAPP) и иметь проблему. Когда я создаю пользователя с хостом «@%» так: <код> CREATE USER 'test'@'%' IDEN...

2  Найти реалированные данные таблицы1 в Таблице2  ( To find realted data of table1 in table2 ) 
Table1 имеет некоторые данные как категории Table2 имеет некоторые данные, которые реализуются в категориях Table1 и соотношение между двумя таблицами...

1  Почему RDS (AWS) отображается DB Connection Count 0?  ( Why rdsaws is showing db connection count 0 ) 
Я в настоящее время подключен к RDS через мой сайт, но RDS говорит, что соединения БД - 0 Может кто-нибудь сказать мне, это правильно или что-то еще. ...

55  Как разблокировать с Mysqladmin Flush Hosts  ( How to unblock with mysqladmin flush hosts ) 
Я прошел через подобные случаи, перечисленные здесь, но это, кажется, не работает. Я использовал MySQL Workbench, чтобы установить соединение с моей базой д...

0  MySQL генерирует счетчик в режиме реального времени, сгруппированный родительским идентификатором  ( Mysql generate real time counter grouped by parent id ) 
У меня есть две таблицы: Родительская информация и AMP; Зависимая информация Структуры таблицы следующие: Родитель <код> ID | First | Last |...

0  MySQL соответствует с 2 полями  ( Mysql match against with 2 fields ) 
У меня проблема с матчем () против () в mysql. Я не могу соответствовать 2 Columfields друг против друга, только если я использую процедуру, это понятно. Те...

0  Наведите курсор мыши - показать данные mysql  ( Mouse over show mysql data ) 
До сих пор у меня есть следующий код: <код> <?php $mysql_hostname = "localhost"; $mysql_user = "root"; $mysql_password = "password"; $mysql_database = "...

-1  SQL Server для моего SQL  ( Sql server to my sql ) 
У меня есть новый проект от моего учителя, чтобы преобразовать базу данных в другую. Как я могу преобразовать базу данных MS SQL в MySQL с помощью Java? ...

1  Разбор XML-документа с PHP с использованием петли «Foreach»  ( Parsing xml document with php using foreach loop ) 
Я новичок в php, mysql и xml ... и пытался обернуть голову вокруг классов, объектов, массивов и петель. Я работаю над анализатором, который извлекает данные и...

0  Почему мой счет на массиве хранится в переменной сессии удваивает?  ( Why does my array count stored in a session variable doubles ) 
У меня есть таблица, которая содержит следующие столбцы .. И я сохранил данные этой таблицы в переменную сеанса <код> $sql = "SELECT * from `basic_info...

2  MySQL разъем ODBC ODBC.INI 'Опция «Значения флага»  ( Mysql connector odbc odbc ini option flag values ) 
first offf, спасибо за время и усилия, чтобы прочитать по этому вопросу. Я пытаюсь лучше понять, как определяется значение, указанное в свойстве «Опция» в ф...

0  MySQL + Ошибка 771006 (HY000): Не удается создать базу данных «Тест» (errno: 2)  ( Mysql error 771006 hy000 cant create database test errno 2 ) 
Я устанавливаю MySQL на сервере, и он успешно сделан. Теперь, когда я вхожу в систему как root, и попробуйте создать базу данных, я получаю следующую ошибку...

0  Вставить арабский с помощью PDO не работает  ( Insert arabic using pdo is not working ) 
Я очень глубоко укорую в этом и посмотрите много вопросов, и это не работает Каждый раз, когда я пытаюсь вставить арабский, он показывает так (?????) <Сильн...

1  Транзакции mysql и php  ( Transactions mysql and php ) 
Я запутался ABT работает транзакциями через PHP-скрипт. В моем MySQL AutoCommit устанавливается на 1, Тем не менее, когда я запускаю скрипт ex: mysql_query ...

0  Создание электронной почты на основе запроса MySQL  ( Generating an email based on mysql query ) 
У меня есть 2 таблицы, отображаемые ниже. Похожие словари: . + -------------------------------- + |. Пользователь |. ilike |. + ---------------------------...