内容简介:最近在做一个项目,其中需要建立一张管理员的表,DDL语句如下:这一切在我本地环境运行的时候都很正常,但当我在测试环境的数据库运行此段SQL的时候,却出现了如下错误:一开始我还以为是SQL写错了,所以惯性的检查了一遍SQL,还是没发现毛病,网上的很多回答都是关于SQL_MODEL,但我的
最近在做一个项目,其中需要建立一张管理员的表,DDL语句如下:
CREATE TABLE `manager` ( `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, `name` varchar(10) NOT NULL COMMENT '姓名', `phone` varchar(11) NOT NULL COMMENT '手机号码', `createdAt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `updatedAt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `deletedAt` datetime, PRIMARY KEY (`id`), UNIQUE KEY phone (`phone`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='管理员'; 复制代码
这一切在我本地环境运行的时候都很正常,但当我在测试环境的数据库运行此段 SQL 的时候,却出现了如下错误:
[42000][1067] Invalid default value for 'createdAt' 复制代码
一开始我还以为是SQL写错了,所以惯性的检查了一遍SQL,还是没发现毛病,网上的很多回答都是关于SQL_MODEL,但我的 SQ_MODEL
是空的,所以并不是这个问题。
最后定位到问题是版本的问题, 因为我本地的 MySQL 版本是5.6,而测试环境的是5.5
,所以就出现这个问题,关于这个问题还有一点就是在5.5的版本中一个字段是不能同时有两个 CURRENT_TIMESTAMP
的,而5.6之后就解除了一系列的限制。
Previously, at most one TIMESTAMP column per table could be automatically initialized or updated to the current date and time. This restriction has been lifted. Any TIMESTAMP column definition can have any combination of DEFAULT CURRENT_TIMESTAMP and ON UPDATE CURRENT_TIMESTAMP clauses. In addition, these clauses now can be used with DATETIME column definitions. For more information, see Automatic Initialization and Updating for TIMESTAMP and DATETIME.官方解释
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 详解nginx的请求限制(连接限制和请求限制)
- PHP利用PCRE回溯次数限制绕过某些安全限制
- nginx限制客户端请求数+iptables限制TCP连接和频率来防止DDOS
- 文件上传限制绕过
- 文件上传限制绕过技巧
- 数值类型(金额)限制与判断
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
数值方法和MATLAB实现与应用
拉克唐瓦尔德 / 机械工业出版社 / 2004-9 / 59.00元
本书是关于数值方法和MATLAB的介绍,是针对高等院校理工科专业学生编写的教材。数值方法可以用来生成其他方法无法求解的问题的近似解。本书的主要目的是为应用计算打下坚实的基础,由简单到复杂讲述了标准数值方法在实际问题中的实现和应用。本书通篇使用良好的编程习惯向读者展示了如何清楚地表达计算思想及编制文档。书中通过给读者提供大量的可直接运行的代码库以及讲解MARLAB工具箱中内置函数使用的数量方法,帮助......一起来看看 《数值方法和MATLAB实现与应用》 这本书的介绍吧!