@bro1807

Текущая дата в DATE?

Как установить текущую дату по умолчанию для столбца с типом данных DATE? В интернете нашел ответ только для DATETIME. CURRENT_DATE и CURDATE приводят к ошибке.
  • Вопрос задан
  • 43 просмотра
Пригласить эксперта
Ответы на вопрос 2
BojackHorseman
@BojackHorseman Куратор тега MySQL
...в творческом отпуске...
как было раньше

With one exception, the default value specified in a DEFAULT clause must be a literal constant; it cannot be a function or an expression. This means, for example, that you cannot set the default for a date column to be the value of a function such as NOW() or CURRENT_DATE. The exception is that, for TIMESTAMP and DATETIME columns

и как стало с версии 8.0.13

CREATE TABLE t1 (
  -- literal defaults
  i INT         DEFAULT 0,
  c VARCHAR(10) DEFAULT '',
  -- expression defaults
  f FLOAT       DEFAULT (RAND() * RAND()),
  b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
  d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
  p POINT       DEFAULT (Point(0,0)),
  j JSON        DEFAULT (JSON_ARRAY())
);
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
CREATE TRIGGER myTable_OnInsert BEFORE INSERT ON `myTable`
    FOR EACH ROW SET NEW.date = IFNULL(NEW.date, CURDATE());
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы