admin管理员组文章数量:1612058
昨天被这个报错整的死去活来,网上搜索问题结果大多有以下几种情况:
1.MySQL版本低于5.7。 但是我的MySQL版本是5.7。
2.找到MySQL下载路径中的my.ini文件,中对sql_mode进行修改
sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
或者网络上出现的其他优秀答案。
我的修改后还是报错。而且我原有的sql_mode就没有限制时间默认值……
很好,于是乎我去求救大佬朋友们,大佬A用cmd直接写sql语句解决,证明我的MySQL是能创建默认值为CURRENT_TIMESTAMP的时间字段的,然后大佬B说他前几天也遇到过类似的问题,最后解决思路是用后端去处理这个创建当前时间。
既然cmd能写出来,那么Navicat一定也可以,一觉睡醒我又来钻牛角尖了,仔细回放了Navicat的学习视频,我华生发现了盲点:
第一步:新建连接、新建数据库。
第二步:新建表,新建主键字段,随便其他字段,还有主人公create_time字段(类型timestamp或datatime都行)。重点来了,不要修改它默认值,它默认值为空白或是null都不要理睬。然后点击保存。
第三步:右键,设计表,点击create_time字段,修改默认值为CURRENT_TIMESTAMP,根据当前时间戳更新不要点勾,点击保存。没!有!报!错!
第四步:欢呼。
遇到报错的很大原因,我猜测是在新建表时就修改了默认值为CURRENT_TIMESTAMP,然后Navicat建表语句不符合 默认值为CURRENT_TIMESTAMP 的规范,然后就会报1064的错误,定位到你create_time那行。
总之问题解决了,皆大欢喜。最后感谢大佬A和大佬B的帮助~
补充:sql语句(只是为了测试create_time字段)
CREATE TABLE `gy`.`Untitled` (
`id` int(20) NOT NULL COMMENT 'id',
`create_time` timestamp NOT NULL default CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
);
本文标签: 报错字段值为Navicatcreatetime
版权声明:本文标题:Navicat新建create_time字段默认值为CURRENT_TIMESTAMP后保存报错1064 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1728626970a1166617.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论