为什么我不能在mysql中使用Current_timestamp作为默认值?

时间:2011-07-13 16:33:57

标签: mysql timestamp

我在phpmyadmin本地设置了一个MySQL数据库。我想使用远程数据库中的可用表,因此我从phpmyadmin导出了SQL并尝试在其他数据库上运行它。

出口给了我这个:

CREATE TABLE IF NOT EXISTS `messages` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `Title` varchar(255) NOT NULL,
  `Message` text NOT NULL,
  `MsgType` varchar(10) DEFAULT NULL,
  `Important` int(1) NOT NULL DEFAULT '0',
  `Poster` int(5) DEFAULT NULL,
  `Date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=37 ;

然而,现在它抱怨有一个解析错误

  

靠近'CURRENT_TIMESTAMP,PRIMARY KEY(ID))ENGINE = MyISAM DEFA“。

它在我的本地数据库上工作,为什么不在这里?改变了什么,我该如何解决?

编辑:我也尝试过使用NOW()或CURDATE()等其他函数,同样的问题。

1 个答案:

答案 0 :(得分:2)

来自the documentation

  

注意在旧版本的MySQL(4.1之前版本)中,属性为   TIMESTAMP数据类型在几个方面与实际情况有很大不同   在本节中描述(参见MySQL 3.23,4.0,4.1参考   手册详情);这些包括语法扩展   在MySQL 5.1中已弃用,在MySQL 5.5中不再受支持。这个   对执行转储和恢复或复制有影响   在MySQL服务器版本之间。

MySQL 4.0.24在这一点上已经过时了 - 考虑迁移到以5开头的版本: - )