Если вы используете MySQL 8.0 или новее, то ответы, предоставленные @TimBiegeleisen и @ fa06, должны решить проблему.В противном случае
... значение по умолчанию, указанное в предложении DEFAULT, должно быть литеральной константой;это не может быть функция или выражение.
См. подробности в документации .
Итак, для предыдущих версий вам нужно найтипо-другому.Например, вы можете определить триггер , который устанавливает значение по умолчанию для столбца, если значение не указано:
CREATE TABLE MyTable (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
joined VARCHAR(12)
);
CREATE TRIGGER defaultMonth
BEFORE INSERT ON MyTable
FOR EACH ROW
SET NEW.joined = IFNULL(NEW.joined, LOWER(MONTHNAME(NOW())));
См. Также живой пример для предлагаемогорешение.