Mysql

current_timestamp 預設列值適用於 Windows 但不適用於 Linux

  • December 10, 2015

此 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 中)。請參閱有關,TypesDATE``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之後立即執行。

引用自:https://dba.stackexchange.com/questions/107100