2012-03-15 3 views
4

Можно ли установить значение по умолчанию для столбца в качестве даты истечения срока действия (несколько часов от CURRENT_TIMESTAMP)?Срок действия в качестве значения по умолчанию для столбца TIMESTAMP

Я уже пробовал:

ALTER TABLE `table` 
ADD COLUMN `expire` TIMESTAMP NOT NULL DEFAULT TIMESTAMPADD(HOUR, 5, CURRENT_TIMESTAMP); 

Но не получилось ..

+2

'' TIMESTAMP' и DATETIME' столбцы могут по умолчанию 'CURRENT_TIMESTAMP', но не к значению, рассчитанному с помощью функции. Лучшая ставка - это триггер, как в примере Айка. –

ответ

6

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

Вы можете сделать это с помощью триггера, если вы хотите:

DELIMITER $$ 

DROP TRIGGER IF EXISTS tr_b_ins_table $$ 

CREATE TRIGGER tr_b_ins_table BEFORE INSERT ON table FOR EACH ROW BEGIN 
    SET NEW.expire = NOW() + INTERVAL 5 HOUR; 
END $$ 

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