有人可以告诉我这段代码出了什么问题,它基于WORKING example(只有更少的行和字符/ varchar在少数代码中被更改)
CREATE TABLE IF NOT EXISTS `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uniqueid` character(32) COLLATE utf8_general_ci NOT NULL DEFAULT '',
`example1` varchar(32) COLLATE utf8_general_ci NOT NULL DEFAULT '',
`example2` varchar(32) COLLATE utf8_general_ci NOT NULL DEFAULT '',
`example3` bit(2) COLLATE utf8_general_ci NOT NULL DEFAULT '',
`example4` bit(2) COLLATE utf8_general_ci NOT NULL DEFAULT '',
`example5` varchar(32) COLLATE utf8_general_ci NOT NULL DEFAULT '',
`example6` character(39) COLLATE utf8_general_ci NOT NULL DEFAULT '',
`example7` datetime NOT NULL DEFAULT '1970-01-01 00:00:01',
`example8` datetime NOT NULL DEFAULT '1970-01-01 00:00:01',
`example9` datetime NOT NULL DEFAULT '1970-01-01 00:00:01',
`example0` int(10) COLLATE utf8_general_ci NOT NULL DEFAULT,
`accessed` datetime NOT NULL DEFAULT '1970-01-01 00:00:01',
`modified` datetime NOT NULL DEFAULT '1970-01-01 00:00:01',
PRIMARY KEY (`id`),
UNIQUE KEY `uniqueid` (`uniqueid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='Basic user handling';
我用mySQL尝试了数百万次,它总是让我一次又一次地感到沮丧:
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' `accessed` datetime NOT NULL DEFAULT '1970-01-01 00:00:01', `modified` date' at line 13
不幸的是,这不仅仅是错误......
当我修复一个(删除字段)时 - 另一个出现!
我虽然这是我的服务器,因为我最近迁移到了MariaDB,但我测试了http://sqlfiddle.com/
同样的错误......
答案 0 :(得分:4)
`example0` int(10) COLLATE utf8_general_ci NOT NULL DEFAULT,
^-- ?!
如果您要在此处使用DEFAULT
关键字,则需要使用有效值。
一般来说,MySQL语法错误出现在解析器无法弄清楚的第一个单词上。如果您不确定导致错误的原因,请查看之前所抱怨的内容。