MySQL дата-время по умолчанию с интервалом - PullRequest
3 голосов
/ 11 августа 2011

Можно ли добавить к времени по умолчанию NOW (), 10 минут?

Я пробовал что-то подобное:

CREATE TABLE `table1` (
    `date` DATETIME NOT NULL DEFAULT DATE_ADD(NOW(), INTERVAL 10 MINUTE)
);  

Однако, это не работает.

Ответы [ 2 ]

5 голосов
/ 11 августа 2011

Однако для этого можно использовать триггер вставки.Установите значение по умолчанию для столбца 'date' в null и используйте

CREATE TRIGGER settime
BEFORE INSERT on table1
FOR EACH ROW BEGIN
    IF new.`date` is null THEN
        SET new.`date` = DATE_ADD(NOW(), INTERVAL 10 MINUTE);
    END IF;
END;
5 голосов
/ 11 августа 2011

Я не думаю, что вы можете сделать это.

Документация MySQL утверждает, что:

Предложение значения DEFAULT в спецификации типа данных указывает значение по умолчанию для столбца.За одним исключением, значение по умолчанию должно быть константой;это не может быть функция или выражение.Это означает, например, что вы не можете установить по умолчанию для столбца даты значение функции, такой как NOW () или CURRENT_DATE.Исключением является то, что вы можете указать CURRENT_TIMESTAMP в качестве значения по умолчанию для столбца TIMESTAMP

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...