使用表名中的特殊字符删除MySQL(3.23.58)中的表

bga*_*ock 3 mysql mysql-management

是的,这是一个旧的数据库(我们正在迁移过程中).不知何故,phpMyAdmin让用户创建一个带有'的表.

name:type_save'

但是,我现在似乎无法放弃那张桌子.我从命令行试过这个:

mysql> drop table "type_save\'";
ERROR 1064: You have an error in your SQL syntax near '"type_save\'"' at line 1                                                                          

mysql> drop table "type_save'";
ERROR 1064: You have an error in your SQL syntax near '"type_save'"' at line 1    


mysql> drop table `type_save'`;
'>                                                                                      
Run Code Online (Sandbox Code Playgroud)

你怎么逃脱这个?

谢谢...

Bob*_*ica 8

根据MySQL是否允许用点创建数据库?你使用反引号引用名称,如

drop table `type_save'`
Run Code Online (Sandbox Code Playgroud)

试试看,看看是否有帮助.


Pab*_*ruz 7

试试这个:

mysql> drop table `type_save'`;
Run Code Online (Sandbox Code Playgroud)

注意:"mysql>"只是命令提示符.

字符是`(反向撇号或左单引号).


der*_*ert 1

它是 MySQL 3.x,因此很可能是 MyISAM(甚至是 ISAM)。由于删除表的正常方法不起作用(因为您说它会使服务器崩溃),并且如果是 MyISAM/ISAM,只需直接从文件系统中删除相关的.MYI.MYD和文件,或者如果需要将它们移动到其他地方.frm出于某种原因保留它们。然后做冲洗表。您甚至不需要关闭服务器(至少在 Unix 上,在 Windows 上该文件可能正在使用中,并且 Windows 可能不允许您删除它。刷新表可能会有所帮助)。

如果是 InnoDB、只有 ISAM 或 MyISAM,则不要这样做。

如果是InnoDB,恐怕你将来可能会进行转储/重新加载。

当然,还有备份。始终有备份。