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


    项目使用mysql数据库,在设计表时某张表有多个字段设计的类型是timestamp 但没有给默认值,在执行sql时报 timestamp Invalid default value for 'xxx'。解决办法是给字段提供默认值 。示例如下:

    错误:

    create table T_CUST_REG_INFO
    (
       REG_ID               int not null,
       CUST_NO              varchar(18) comment '客户账号',
       CUST_PWD             varchar(64) comment '客户密码',
       CUST_TYPE            varchar(2) comment '0-个人,1-企业',
       REG_DATE             datetime comment '注册时间',
       CUST_STATUS          varchar(2) comment '0-离线1-在线2-已注销',
       PWD_HISTORY          varchar(1000),
       PWD_UPDATE_TIME      timestamp comment'密码更新时间',
       LAST_UPDATE_TIME     timestamp  comment '最后操作时间',
       REMARK               varchar(255) comment '备注',
       primary key (REG_ID)
    );

    正确:

    create table T_CUST_REG_INFO
    (
       REG_ID               int not null,
       CUST_NO              varchar(18) comment '客户账号',
       CUST_PWD             varchar(64) comment '客户密码',
       CUST_TYPE            varchar(2) comment '0-个人,1-企业',
       REG_DATE             datetime comment '注册时间',
       CUST_STATUS          varchar(2) comment '0-离线1-在线2-已注销',
       PWD_HISTORY          varchar(1000),
       PWD_UPDATE_TIME      timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP comment'密码更新时间',
       LAST_UPDATE_TIME     timestamp  NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP comment '最后操作时间',
       REMARK               varchar(255) comment '备注',
       primary key (REG_ID)
    );

    但是表中如果只有一个timestamp字段 则未出现该情况,不知道是何道理。

  • 相关阅读:
    Duilib 入门教程: 怎么创建一个自定义的窗口
    从屏幕右下角升起的弹窗
    最小化窗口至右下角
    MFC 使程序不在任务栏显示
    创建数据库
    sqlite入门基础(一):sqlite3_open,sqlite3_exec,slite3_close
    VC++、MFC中最好的开源项目
    在MFC中,利用GDI绘制橡皮筋效果-直线,圆,椭圆,矩形
    WCHAR char CString等常用类型互转
    CGAL 计算机几何算法库
  • 原文地址:https://www.cnblogs.com/wlgqo/p/6208250.html
Copyright © 2020-2023  润新知