在一次升级过程中,发现Mysql插入数据报了个错

Column 'create_time' cannot be null.

但是看了下这个字段虽然是非null,但是是有默认值的

`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP

报这个错的原因是往这个字段里插入了null,但是没有用默认值代替null

看了下本地和服务器的Mysql版本都是5.7,在本地是没有问题的

最后发现是有一个explicit_defaults_for_timestamp参数去控制timestamp的列的默认值还是NULL

show variables like 'explicit_defaults_for_timestamp';

这个参数默认为off

当设置为off时:

如果往这个列中插入null值,会自动的设置该列的值为current timestamp值

当设置为on时:

此时向该列中插入null值时,会直接记录null,而不是current timestamp

修改参数可以使用set或者修改my.cnf配置,set重启会失效

//改成off
set GLOBAL explicit_defaults_for_timestamp = 1

参考:https://segmentfault.com/a/1190000018818020

Mysql 插入timestamp没有使用默认值问题的更多相关文章

  1. MYSQL中TIMESTAMP类型的默认值理解

    MYSQL中TIMESTAMP类型可以设定默认值,就像其他类型一样. 1.自动UPDATE 和INSERT 到当前的时间:表:----------- Table   Create Table      ...

  2. MySQL设置当前时间为默认值的方法

    方法一.是用alert table语句: 复制代码代码如下: use test_db1; create table test_ta1( id mediumint(8) unsigned not nul ...

  3. 设置 Mysql中的datetime的默认值

    如果在navicat下操作,将字段类型设置为timestamp,然后默认值写上CURRENT_TIMESTAMP即可

  4. mysql多个时间戳字段默认值问题

    项目使用mysql数据库,在设计表时某张表有多个字段设计的类型是timestamp 但没有给默认值,在执行sql时报 timestamp Invalid default value for 'xxx' ...

  5. 二货Mysql中设置字段的默认值问题

    Mysql设置字段的默认值的确很落伍 1.不支持函数 2.只支持固定常量. 经常用到的日期类型,因为不支持getdate或者now函数,所以只能设置timestamp类型 而且还必须在默认值那个地方写 ...

  6. 关于Java读取mysql中date类型字段默认值'0000-00-00'的问题

    今天在做项目过程中,查询一个表中数据时总碰到这个问题:      java.sql.SQLException:Value '0000-00-00' can not be represented as ...

  7. 网站搬家之mysql 5.7 date类型默认值不能设置‘0000-00-00’的问题

    网站搬家,mysql版本由5.6升级到5.7,遇到问题: mysql 5.7之后版本datetime默认值设置'0000-00-00',出现异常:Invalid default value for ' ...

  8. mysql删除、修改字段默认值

    alter table表名alter column字段名drop default; (若本身存在默认值,则先删除) alter table 表名 alter column 字段名 set defaul ...

  9. MYSQL SQL 语句修改字段默认值

    alter table tablename alter column drop default; (若本身存在默认值,则先删除) alter table tablename alter column ...

  10. FluentNHibernate当数据库设置默认值时,使用插入操作,导致默认值没有写入问题

    需要再映射属性字段增加Not.Insert() Map(x => x.Provrince, "PROVRINCE").Not.Insert(); Map(x => x. ...

随机推荐

  1. [转帖][minio]挂载minio到本地

    https://www.cnblogs.com/XY-Heruo/p/16489190.html 前言 将minio的bucket挂载到本地文件系统 环境 客户端系统版本:centos 7 MinIO ...

  2. [转帖]Linux系统语言设置和locale命令详解

    简介 Linux系统可以用locale命令查看语言设置,查看中英文环境,具体操作如下. 操作 1.查看当前安装有那些语言: [root@localhost /]# locale -a 2.当前语言相关 ...

  3. [转帖]OutOfMemoryError内存溢出相关的JVM参数

    原文在这里: OutOfMemoryError内存溢出相关的JVM参数 JVM提供了很多处理内存溢出的相关参数,本文主要来讲解下这些参数,当你遇到内存溢出的时候可能会对你非常有帮助,这些参数主要有: ...

  4. [转帖]Native Memory Tracking 详解(3):追踪区域分析(二)

    https://www.modb.pro/db/539804 上篇文章 Native Memory Tracking 详解(2):追踪区域分析(一) 中,分享了NMT追踪区域的部分内存类型--Java ...

  5. 一次w3wp出现crash的简单解决方案

    1. 前几天同事求助, 说一台服务器iis出现多次崩溃的现象,重启iis就可以了.  具体原因不明. 之前遇到过类似的问题  感觉最彻底的解决方案是 抓dump然后使用windbg 进行分析. 但是自 ...

  6. [粘贴]【CPU】关于x86、x86_64/x64、amd64和arm64/aarch64

    [CPU]关于x86.x86_64/x64.amd64和arm64/aarch64 https://www.jianshu.com/p/2753c45af9bf 为什么叫x86和x86_64和AMD6 ...

  7. package.json中^,~的详细说明

    场景描述 在package.json这个文件中,我们经常可以看见这样的信息 但是我们很少注意的是 版本前面的 ^ 到底是什么意思 今天我们就来讲一下(端好小板凳) "dependencies ...

  8. DES加密和base64加密

    DES简介:参考知乎 https://www.zhihu.com/question/36767829 和博客https://www.cnblogs.com/idreamo/p/9333753.html ...

  9. 强大的AWS lambda

    AWS强大的lambda 自从几年前换工作后,我所参与的项目一直都是基于AWS云服务的架构,我慢慢对serverless的相关基础建设有了一定了解和实践经验.其中lambda是我心中最强大的serve ...

  10. 从零开始配置 vim(14)——目录管理插件

    我们在介绍vim目录管理的时候提到 vim自带一个 叫做 netrw的工具来管理目录.但是它自身的功能有限,而且样式也丑.今天我们将使用其他强大的插件来替代 netrw,增强目录管理功能 nvim-t ...