2015-02-26 2 views
-1

Я в новом проекте, и мне нужно установить дату истечения срока действия для каждого сообщения, , чтобы я мог сделать событие mysql, удалить все сообщения, которые достигли даты истечения срока действия. я попытался это:MYSQL auto set expirey date

alter table anuncios 
MODIFY dataexpiracao TIMESTAMP on update TIMESTAMPADD(DAY,30,'NOW()'); 

, что дает мне синтаксис об ошибке ф ... Просьба помочь мне я не знаю, если это лучший гуманного, но это единственный я мог бы узнал после некоторых исследований, если вы знаете, что некоторые другие PLS говорят мне, и можете ли вы сказать, как сделать событие mysql?

ответ

0

Вы не можете сделать это в своем определении таблицы. Однако вы можете создать триггер, который автоматически устанавливает дату для вас перед вставкой или обновлением строки. https://dev.mysql.com/doc/refman/5.0/en/create-trigger.html

Вот пример, который устанавливает срок годности 30 дней для всех новых строк.

CREATE TRIGGER set_expiration_date 
    BEFORE INSERT ON `anuncios` 
    FOR EACH ROW SET NEW.dataexpiracao = DATE_ADD(NOW(), INTERVAL 30 DAY);