mysql添加DATETIME类型字段导致Invalid default value错误的问题

执行sql如下:

CREATE TABLE `qcloud_sms_template` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
    `ctime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY(`id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

执行结果:

ERROR 1067 (42000): Invalid default value for 'ctime'

这段sql在本机测试没问题,放到开发环境下就报错了。
很奇怪,搜索一番后,发现DATETIME类型只支持mysql 5.6.5+.

解决方法:

    将DATETIME改为TIMESTAMP。

参考资料:
http://stackoverflow.com/questions/168736/how-do-you-set-a-default-value-for-a-mysql-datetime-column/10603198

标签: mysql

已有 4 条评论

  1. *LuLu *LuLu

    非常感谢,帮助我解决了问题!

  2. zl zl

    可以。/感谢

  3. daxiahy daxiahy

    非常感谢,帮助我解决了问题! 但原理不太明白

  4. rrr rrr

    谢谢, 一次性解决, 简单易懂, 关注博客了.

添加新评论