我得到了一個我無法修復的SQL的愚蠢問題。'dateAdded'的默認值無效
ALTER TABLE `news` ADD `dateAdded` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP AUTO_INCREMENT , ADD PRIMARY KEY ( `dateAdded`)
錯誤:
(#1067)Invalid default value for 'dateAdded'
有人可以幫我嗎?
我得到了一個我無法修復的SQL的愚蠢問題。'dateAdded'的默認值無效
ALTER TABLE `news` ADD `dateAdded` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP AUTO_INCREMENT , ADD PRIMARY KEY ( `dateAdded`)
錯誤:
(#1067)Invalid default value for 'dateAdded'
有人可以幫我嗎?
CURRENT_TIMESTAMP
僅在TIMESTAMP
字段中可接受。 DATETIME
字段必須保留爲空默認值或根本沒有默認值 - 默認值必須是常數值,而不是表達式的結果。
相關文檔:http://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html
您可以解決此通過設置在表插入後觸發填寫任何新的記錄的「現在」的價值。
它看起來像MySQL 5.6.5,你可以使用CURRENT_TIMESTAMP和DATETIME字段。請參閱http://dev.mysql.com/doc/refman/5.6/en/timestamp-initialization.html –
感謝Frank,在嘗試將導出的數據庫從最新的xampp導入到較早的xampp時發現此問題。 –
HCD,Frank ...發現從MariaDb 10.x導出到MariaDB 5.5的相同問題...謝謝 – Aukhan
當在MySQL 5.7.x上指定DATETIME
爲DATETIME(3)
或類似內容時,還需要注意,您還必須爲CURRENT_TIMESTAMP(3)
添加相同的值。如果不是,它將繼續投擲'無效的默認值'。
我的MySQL版本5.6.27在我的LEMP和CURRENT_TIMESTAMP作爲默認值工作正常。
MySQL版本5.5日期時間設置爲默認CURRENT_TIMESTAMP會報錯 您可以更新到5.6版本值,將它設置日期時間默認值爲CURRENT_TIMESTAMP
變化從日期時間類型時間戳,它會工作! 我有mysql的56年5月5日,MariaDB的同一個問題 - MariaDB的服務器 希望它可以幫助...對不起,如果depricated
我有同樣的問題, 以下修補程序解決我的問題。
選擇類型爲 '時間戳'
不輸入任何內容長度/值的字段。保持空白
選擇CURRENT_TIMESTAMP作爲默認值。
我使用的是MySQL版本56年5月5日
這可能是一個愚蠢的問題,但你爲什麼''AUTO_INCREMENT' DATETIME'? –