MySQL 5.5 и 5.6 значения по умолчанию
Я хотел бы получить некоторые разъяснения о поведении значений по умолчанию в MySQL 5.5 и 5.6. Допустим, у нас есть следующая таблица на сервере MySQL 5.5:
CREATE TABLE `test` (
`TestColumn` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=INNODB DEFAULT CHARSET=utf8;
Я могу выполнить следующий запрос без проблем:
INSERT INTO `test` VALUES (NULL);
Который создает следующую строку:
TestColumn
2014-02-20 14:55:05
Теперь, если я повторю тот же тест на сервере MySQL 5.6, вставка завершится неудачно:
Error Code: 1048
Column 'TestColumn' cannot be null
Я понимаю, что отметка времени автоматической инициализации изменилась в 5.6 (http://dev.mysql.com/doc/refman/5.6/en/timestamp-initialization.html), но я не могу понять, как повторить поведение, описанное в 5.5 в 5.6.
Не уверен, что это имеет значение, но для нашего сервера 5.6 в качестве значения «visible_defaults_for_timestamp» установлено значение «ON».
В идеале то, что я ищу, - это решение, но если кто-то лучше поймет и сможет это объяснить, это также будет полезно.
Благодарю.
РЕДАКТИРОВАТЬ: Мы используем MySQL 5.6.13