2016-04-23 71 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

謝謝你的幫助 –

相關問題