[英]Can't create table on phpmyadmin #1067 error
可能启用了严格模式和 NO_ZERO_DATE。 这对在零日期产生错误。
检查 SQL_MODE 并查看此页面 - NO_ZERO_DATE
将默认时间戳设置为:
CURRENT_TIMESTAMP
您的date_crated
值的默认值不正确。
来自https://dev.mysql.com/doc/refman/5.7/en/datetime.html
TIMESTAMP 值的范围是“1970-01-01 00:00:01.000000”到“2038-01-19 03:14:07.999999”
通常,您应该将默认值设置为CURRENT_TIMESTAMP
此解决方案仅适用于 2038 年 1 月 19 日凌晨 3:14:07。 到撰写此答案时,大约还有 21 年。 所以对于未来的程序员来说,如果 MySQL 不更新/修复这个限制,你就会遇到问题,必须找到解决方法。
您的date_created
列的类型为timestamp
并且您将0000-00-00 00:00
作为默认值,这对于时间戳不正确,您可以为此列选择CURRENT_TIMESTAMP
。
这个问题似乎没有解决办法。 无论我做什么,如果我使用 CURRENT_TIMESTAMP 或“1970....”,一个正常的有效日期,NULL,什么都没有,或者其他什么,即使我运行:
SET SQL_MODE='ALLOW_INVALID_DATES';
(该命令实际上成功了)
.. 但它仍然是错误 #1067。 没有任何帮助。
我现在转移到 Ubuntu,在那里我没有问题。
啊,我终于在 phpMyAdmin 中修复了它!
只需从 phpMyAdmin 中的 SQL 面板运行:
SHOW VARIABLES LIKE 'sql_mode';
就我而言,我在这里有 NO_ZERO_DATE。
然后我将它设置为我在我的 Ubuntu 系统上使用的:
set global sql_mode='NO_ENGINE_SUBSTITUTION';
现在一切都使用'0000-00-00 00:00'作为默认值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.