尝试为新记录创建自动时间戳

时间:2016-10-20 18:03:06

标签: php mysql

这是表格:

   CREATE TABLE `obits` (
  `pid` int(11) NOT NULL,
  `surname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `firstname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `middlename` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `maiden` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `presuf` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `birth` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `death` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `obitdate` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `obitsource` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `sourcepage` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `obittext` text COLLATE utf8_unicode_ci,
  `DateCreated` DATETIME COLLATE utf8_unicode_ci NOT NULL DEFAULT(GETDATE())
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

这是我得到的错误:你的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在'(GETDATE()附近使用正确的语法 )ENGINE = MyISAM DEFAULT CHARSET =第14行的utf8 COLLATE = utf8_unicode_ci'(第14行是日期创建的行)

我可能错过了一些非常简单的事情,但对于我的生活,我不知道是什么。感谢您的帮助。在我尝试使用datecreated line重新创建它之前,这个表很好。

1 个答案:

答案 0 :(得分:2)

You can't use a function to fill default values in MySql, except CURRENT_TIMESTAMP for TIMESTAMP columns。在5.6.5之前,您必须使用TIMESTAMP。

DateCreated TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

在5.6.5版之后,您可以使用带有CURRENT_TIMESTAMP的DATETIME列作为默认值。