从Mysql中删除锁定的表

时间:2014-04-02 09:12:31

标签: mysql

我在创建时锁定了Mysql锁定表,我以为我是使用drop命令删除的。但是当我尝试通过创建一个同名的表重新开始时,我得到一个错误,即表'tname'已经存在,即使使用drop if exists命令也是如此。

进一步说明我的观点......这是我在开头创建的表格

       DROP TABLE IF EXISTS `one`;
       /*!40101 SET @saved_cs_client     = @@character_set_client */;
       /*!40101 SET character_set_client = utf8 */;
       CREATE TABLE `one` (
       //
       ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
       /*!40101 SET character_set_client = @saved_cs_client */;

       --
       -- Dumping data for table `one`
       --

       LOCK TABLES `one` WRITE;
       /*!40000 ALTER TABLE `one` DISABLE KEYS */;
       /*!40000 ALTER TABLE `one` ENABLE KEYS */;
       UNLOCK TABLES;

       -----

然后删除表格一个; ...当我在数据库中发出 show tables 时,它不再存在了,但当我尝试创建一个名为one的表时,它说表'one'已经存在

       DROP TABLE IF EXISTS `one`;
       /*!40101 SET @saved_cs_client     = @@character_set_client */;
       /*!40101 SET character_set_client = utf8 */;
       CREATE TABLE `one` (
       //
       ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
      /*!40101 SET character_set_client = @saved_cs_client */;

      ERROR 1050 (42S01): Table '`dbname`.`one`' already exists

1 个答案:

答案 0 :(得分:1)

转到您的数据目录并检查那里是否存在one.ibd或one.frm文件。如果存在,则删除该文件并再次检查。

如果删除后仍然出现问题,则在另一个数据库中创建相同的表,并将该数据库中的one.ibd和one.frm文件移动到此数据库,然后删除该表。

希望你的问题能够解决。