MySQL имеет крайне ограниченную поддержку значений по умолчанию. Как правило, это должно быть константное выражение, например '0'
или '(none)'
, и функции не допускаются. Единственное исключение, о котором я знаю, это то, что вы можете установить CURRENT_TIMESTAMP
в качестве значения по умолчанию для столбца TIMESTAMP
; однако это недоступно для столбцов DATE
или DATETIME
. К сожалению, TIMESTAMP
имеет меньший диапазон и содержит информацию о времени.
Итак, ваши варианты:
- Сделайте это в своем клиентском приложении, установив NOW () в качестве значения во вставках.
- Написать триггер:
.
CREATE TRIGGER pollOfTheWeek_trg BEFORE INSERT ON pollOfTheWeek
FOR EACH ROW SET NEW.pollDate = NOW();
Что касается пустых значений, я бы просто использовал NULL. Зачем использовать пустые строки?