我想在
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服务器将explicit_defaults_for_timestamp设置为ON.
理想情况下,我所追求的是解决这个问题的方法,但如果任何人有更好的理解,并且可以解释这一点也是有用的.
谢谢.
编辑:我们正在使用MySQL 5.6.13