Mysql
current_timestamp 預設列值適用於 Windows 但不適用於 Linux
此 MySql 查詢在 Windows 中執行良好:
CREATE TABLE `posts`.`table` ( `idTable` INT NOT NULL AUTO_INCREMENT, `Column1` DATETIME NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`idTable`));
在Ubuntu中,它給出以下錯誤:
錯誤 1067:預設值無效
'Column1'
如何在 Ubuntu 中給出
CURRENT_TIMESTAMP
預設值?'Column1'
MySql 的版本是這樣的:
mysql Ver 14.14 Distrib 5.5.43, for debian-linux-gnu (x86_64) using readline 6.3
原因是兩個環境安裝的版本不同。
DEFAULT CURRENT_TIMESTAMP
用於列的選項datetime
是在 5.6 版本中添加的(特別是在 5.6.5 中)。請參閱有關,和Types的DATE``DATETIME``TIMESTAMP
文件:
TIMESTAMP
和**(從 MySQL 5.6.5 開始)DATETIME
數據類型提供自動初始化和更新到目前日期和時間**。有關更多資訊,請參閱第 11.3.5 節, “和 的自動初始化和更新”TIMESTAMP``DATETIME
。很可能您的 Linux 安裝版本較舊,而 Windows 版本較新。解決方案是升級到新版本(或者在舊版本之外安裝它)。
此處有關從 5.5 升級到 5.6 的一般資訊:從 MySQL 5.5 升級到 5.6以及在 Ubuntu 14.04 LTS 中升級的具體資訊。
不要忘記在升級之前備份您的數據並在
mysql_upgrade
之後立即執行。