【问题标题】:current_timeStamp is not workingcurrent_timeStamp 不工作
【发布时间】:2016-04-24 13:18:47
【问题描述】:

我试过这段代码

CREATE TABLE users (
    userId INT PRIMARY KEY AUTO_INCREMENT NOT NUll,
    account VARCHAR(200) NOT NULL,
    password varchar(200) NOT Null,
    isActive varchar(10) NOT NUll,
    
    createdDate DATETIME DEFAULT CURRENT_TIMESTAMP() NOT NUll,
    updatedDate DATETIME 
);

但是会出现以下错误

1067 - 'createdDate' 的默认值无效

谢谢

【问题讨论】:

  • 你使用的是哪个mysql版本?在 5.6 之前,它只允许用于 timestamp 数据类型。
  • 使用:createdDate datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,

标签: mysql


【解决方案1】:

只需使用CURRENT_TIMESTAMP 而不是CURRENT_TIMESTAMP()

CREATE TABLE users ( 
    userId INT PRIMARY KEY AUTO_INCREMENT NOT NUll, 
    account VARCHAR(200) NOT NULL, password varchar(200) NOT Null, 
    isActive varchar(10) NOT NUll,
    createdDate DATETIME DEFAULT CURRENT_TIMESTAMP NOT NUll,
   updatedDate DATETIME 
);

此外,您可以将任何 TIMESTAMP 列初始化或更新为 当前日期和时间通过为其分配一个 NULL 值,除非它已经 使用 NULL 属性定义以允许 NULL 值。

更多知识点击链接http://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html

【讨论】:

    【解决方案2】:

    将数据类型 datetime 更改为 timestamp 即可。

    CREATE TABLE users ( userId INT PRIMARY KEY AUTO_INCREMENT NOT NUll, 
    account VARCHAR(200) NOT NULL, 
    password varchar(200) NOT Null, 
    isActive varchar(10) NOT NUll,
    createdDate **timestamp** DEFAULT CURRENT_TIMESTAMP() NOT NUll,
    updatedDate DATETIME )
    

    【讨论】:

      【解决方案3】:

      试试这个代码,它应该可以工作。

      CREATE TABLE users (
      userId INT PRIMARY KEY AUTO_INCREMENT NOT NUll,
      account VARCHAR(200) NOT NULL,
      password varchar(200) NOT Null,
      isActive varchar(10) NOT NUll,
      createdDate DATETIME DEFAULT CURRENT_TIMESTAMP NOT NUll,
      updatedDate DATETIME 
      );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-27
        • 2016-05-30
        • 1970-01-01
        • 2016-04-03
        • 1970-01-01
        • 2018-01-26
        相关资源
        最近更新 更多