2016-04-23 46 views
-3

我使用:无效的默认值

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

,但它不能正常工作,它显示了以下错误:

Invalid default value for 'Date' 

请任何人可以帮助我吗?

+2

将您的错误信息与您的代码一起发送! – Saty

+0

分享表架构/结构Image还有吗? – C2486

+0

可能的重复:http://stackoverflow.com/questions/11573586/invalid-default-value-for-date – spencer7593

回答

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 ; 
+0

谢谢你的帮助 –

相关问题