'日期和时间'的默认值无效。 CURRENT_TIMESTAMP

时间:2016-04-23 06:06:57

标签: php mysql database

我正在使用:

'time'  type(datetime) defult value(CURRENT_TIMESTAMP)

但它不起作用,它显示以下错误:

Invalid default value for 'Date'

请有人帮帮我吗?

1 个答案:

答案 0 :(得分:1)

如果您运行的是MySQL 5.6.5或更高版本

在CREATE TABLE中,您可以声明如下列:

  `mydtcol` DATETIME DEFAULT CURRENT_TIMESTAMP 

在5.6之前,不可能将CURRENT_TIMESTAMP用于DATETIME列。可以使用表中的第一个TIMESTAMP列。

  `mytscol` TIMESTAMP DEFAULT CURRENT_TIMESTAMP 

如果您要求该列为DATETIME数据类型,并且您需要在插入行时初始化的列的值,则可以在INSERT语句中为该列提供值,例如

 INSERT INTO mytable (...,mycol,...) VALUES (...,'2016-04-21 23:55:55',...)

或者,您可以使用BEFORE INSERT触发器为列指定值。

 DELIMITER $$

 CREATE TRIGGER mytable_bi 
 BEFORE INSERT ON mytable
 FOR EACH ROW
 BEGIN
   IF new.mydtcol IS NULL THEN
      SET new.mydtcol = NOW();
   END IF;
 END$$

 DELIMITER ;