我在 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;
它在第一行给我的错误是:
ERROR 1103 (42000) at line 56: Incorrect table name 'account.info'
有什么问题吗?
请帮帮我。
最佳答案
来自 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 和其他人所示。
关于mysql - Drop Table if exists 语句给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21136048/