Дата истечения срока действия как значение по умолчанию для столбца TIMESTAMP

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

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

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

Но не работал..


person Victor    schedule 15.03.2012    source источник
comment
Столбцы TIMESTAMP и DATETIME могут по умолчанию иметь значение CURRENT_TIMESTAMP, но не значение, рассчитанное функцией. Лучший вариант — это триггер, как в примере с Айком.   -  person Mike S.    schedule 15.03.2012


Ответы (1)


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

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

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 ;
person Ike Walker    schedule 15.03.2012