这是表格:
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重新创建它之前,这个表很好。
答案 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列作为默认值。