2013-06-06 1 views
0

Основываясь на решении here я попытался с помощью:MS SQL записи, которые истекают через 24 часа

CREATE EVENT delete_expired_101 
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 24 HOUR DO 
DELETE FROM my_table WHERE id = 101; 

на моем PHP запрос, но это, кажется, не работает и дает мне неверный синтаксис. Можете ли вы порекомендовать мне способ для этого?

Обратите внимание, что я использую MS SQL, а не MySQL.

+0

Это несовместимо с T-SQL. Вам нужно будет создать процесс для удаления данных на основе метки времени, которая хранится в виде столбца таблицы. Это может быть просто хранимая процедура, которая очищает данные в течение 24 часов и вызывается с помощью задания агента SQL. –

+0

так что вы имеете в виду, что я должен использовать работу агента sql вместо этого? X_X – CudoX

+0

если да, то бы вы хотя бы дали мне правильные подробные процедуры для этого? я был бы очень признателен. – CudoX

ответ

1

Вам нужно использовать SQL Agent. Логикой может быть задание агента SQL, которое запускается каждые 24 часа, которое удаляет любые данные с временем жизни менее DATEADD(d,-1,getdate()). Проведите некоторое исследование по внедрению SQL-агента. Если вам нужна помощь с кодом для удаления данных в таблице на основе значения datetime, откройте новый вопрос, который включает в себя схему этой таблицы.

+0

Существуют и другие способы запуска кода в базе данных SQL Server, но не путем создания «события» –

+0

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

0

Жаль, что вы выбрали предложение @Chris H с помощью функции удаления и установите столбец таблицы, который записывает временные метки.

Спасибо за помощь

Смежные вопросы