Drop表如果存在语句给出错误

C S*_*per 4 mysql sql database

我在MySql中有以下代码块:

DROP TABLE IF EXISTS `account.info`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `account.info` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `account_id` int(11) NOT NULL,
  `year_id` int(11) NOT NULL,
  `school_id` int(11) NOT NULL,
  PRIMARY KEY (`id`,`account_id`,`year_id`,`school_id`)
) ENGINE=InnoDB AUTO_INCREMENT=7177 DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)

它给我第一行的错误:

ERROR 1103 (42000) at line 56: Incorrect table name 'account.info'
Run Code Online (Sandbox Code Playgroud)

它有什么问题?

请帮我.

mrj*_*ink 5

来自http://dev.mysql.com/doc/refman/5.1/en/identifiers.html :"在MySQL 5.1.6之前,数据库和表名称不能包含"/","\","."或字符文件名中不允许这样做."

这就是我给出这个答案的原因:

您不能在表名中使用点.点用于分隔数据库名称和表名称(和列名称).`account`.`info`如果您的数据库名称是account,并且表名是,则可以尝试使用info.如果表名应该是account.info,你应该把它改成别的东西,比如account_info.我不同意其他一些答案:如果做得好,引用永远不会伤害.

从5.1.6开始,你可以使用任何你喜欢的东西,如@eggyal和其他人所示.