zoukankan      html  css  js  c++  java
  • Mysql 报错:#1067

    由于 字段UPDATE_TIME 的字段类型是 timestamp ,默认值是:'0000-00-00 00:00:00'

    即:`UPDATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '更新时间';

    在对这个表进行创建的时候,提示:

    #1067 - Invalid default value for 'update_time

    原因:

    timestamp有效时间在:1970-01-01 00:00:00 到 2037-12-31 23:59:59

    timestamp类型特点:
    1. 占用4个字节
    2. 允许为空值,但是不可以自定义值,所以为空值时没有任何意义。
    3. TIMESTAMP值不能早于1970或晚于2037。这说明一个日期,例如'1968-01-01',虽然对于DATETIME或DATE值是有效的,但对于TIMESTAMP值却无效,如果分配给这样一个对象将被转换为0。
    4.值以UTC格式保存( it stores the number of milliseconds)

    5.时区转化 ,存储时对当前的时区进行转换,检索时再转换回当前的时区。

    6. 默认值为CURRENT_TIMESTAMP(),其实也就是当前的系统时间。
    7. 数据库会自动修改其值,所以在插入记录时不需要指定timestamp字段的名称和timestamp字段的值,你只需要在设计表的时候添加一个timestamp字段即可,插入后该字段的值会自动变为当前系统时间。
    8. 默认情况下以后任何时间修改表中的记录时,对应记录的timestamp值会自动被更新为当前的系统时间。
    9. 如果需要可以设置timestamp不自动更新。通过设置DEFAULT CURRENT_TIMESTAMP 可以实现。
    修改自动更新:
    `field_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE
    修改不自动更新
    `field_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP 

    解决:

    将默认值设置为:1970-01-01 10:00:00之后

    参考文章:

    https://blog.csdn.net/souldak/article/details/11737799

  • 相关阅读:
    windows下查看端口占用情况及关闭相应的进程
    python学习中的一些“坑”
    python 中一些关键字的区别
    linux下配置Tomcat开机启动
    windows 下的python 安装pycrypto
    'redis-server' 不是内部或外部命令,也不是可运行的程序或批处理文件
    怎么学习代码
    crx文件不能安装,提示无效的安装包
    回调函数
    koa-router的作用
  • 原文地址:https://www.cnblogs.com/feiquan/p/10851117.html
Copyright © 2011-2022 走看看