MySQL令我沮丧 -

时间:2015-02-12 22:10:02

标签: mysql

有人可以告诉我这段代码出了什么问题,它基于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/

同样的错误......

1 个答案:

答案 0 :(得分:4)

`example0` int(10) COLLATE utf8_general_ci NOT NULL DEFAULT,
                                                           ^-- ?!

如果您要在此处使用DEFAULT关键字,则需要使用有效值。

一般来说,MySQL语法错误出现在解析器无法弄清楚的第一个单词上。如果您不确定导致错误的原因,请查看之前所抱怨的内容。