如何解决MySQL中的Error 1103错误?新手技术求助
问题排查与修复方案
一、触发Error 1103的直接原因
你的DROP TABLE语句存在语法错误:
DROP TABLE IF EXISTS `campaign';
这里表名的反引号不匹配——左侧是反引号(`),右侧误写为单引号('),MySQL会把后续的代码片段误认为表名的一部分,从而抛出「Incorrect table name」错误。
修复方法:将右侧的单引号改为反引号:
DROP TABLE IF EXISTS `campaign`;
二、其他潜在语法错误(不修复会触发后续报错)
INSERT语句缺少结束分号
两条INSERT语句都未以分号(;)结尾,MySQL无法识别语句边界,会触发语法错误。需在每条语句末尾添加分号。INSERT字段值数量不匹配
第二条INSERT仅提供了id和name两个值,但表campaign包含11个字段,其中id为必填(NOT NULL),其余字段为可选(DEFAULT NULL)。要么补充所有字段的值,要么明确指定要插入的字段(比如INSERT INTOcampaign(id,name) VALUES (...)),避免因字段数量不匹配报错。
修复后的完整代码段
DROP TABLE IF EXISTS `campaign`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `campaign` ( `id` bigint(20) NOT NULL, `name` text, `sub_category_id` bigint(20) DEFAULT NULL, `country_id` bigint(20) DEFAULT NULL, `currency_id` bigint(20) DEFAULT NULL, `launched` datetime DEFAULT NULL, `deadline` datetime DEFAULT NULL, `goal` double DEFAULT NULL, `pledged` double DEFAULT NULL, `backers` bigint(20) DEFAULT NULL, `outcome` text, PRIMARY KEY (`id`), KEY `country_id` (`country_id`), KEY `sub_category_id` (`sub_category_id`), KEY `currency_id` (`currency_id`), CONSTRAINT `campaign_ibfk_1` FOREIGN KEY (`country_id`) REFERENCES `country` (`id`), CONSTRAINT `campaign_ibfk_2` FOREIGN KEY (`sub_category_id`) REFERENCES `sub_category` (`id`), CONSTRAINT `campaign_ibfk_3` FOREIGN KEY (`currency_id`) REFERENCES `currency` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*!40101 SET character_set_client = @saved_cs_client */; -- Dumping data for table `campaign` LOCK TABLES `campaign` WRITE; /*!40000 ALTER TABLE `campaign` DISABLE KEYS */; INSERT INTO `campaign` VALUES (1,'Ragdolls',23,2,2,NULL,NULL,NULL,NULL,NULL,NULL); INSERT INTO `campaign` (`id`, `name`) VALUES (8667,'Blank Screen Films Summer Project 2013'); /*!40000 ALTER TABLE `campaign` ENABLE KEYS */; UNLOCK TABLES;
内容的提问来源于stack exchange,提问作者Syeda Shanzay Kamran
相关产品推荐
相关产品推荐

