MySQL Drop table 不适用于前缀

Posted

技术标签:

【中文标题】MySQL Drop table 不适用于前缀【英文标题】:MySQL Drop table doesn't work for prefix 【发布时间】:2013-07-12 03:10:49 【问题描述】:

我正在尝试删除带有 wp_ 前缀的表,但它在下面给出错误

Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your mysql server version for the right syntax to use near 'WHERE TABLE LIKE 'wp_%'' at line 1

这是我的查询

"DROP TABLE WHERE TABLE LIKE '$wp%'"

这个查询有什么问题?请帮忙

【问题讨论】:

【参考方案1】:

据我所知,您不能选择性地delete 表。您必须专门delete 每个表,因为删除不能使用过滤器。您可能可以使用元数据来获取所有表的名称,然后在您的代码中找出哪些以wp_ 开头。然后,您只需遍历要删除的表列表,然后使用drop table [table-name]; 删除它们。

要从元数据中获取表名列表,请使用select table_name from information_schema.tables;

【讨论】:

好的,所以 information_schema.tables 只会检查当前数据库? 我很确定,是的。如果您想更改正在查看的数据库,请使用use [database-name]; 不不,我只想在当前数据库中做。 我已经尝试过这段代码,但它没有删除表格,只是显示。SELECT CONCAT('DROP TABLE ',table_name,';') FROM information_schema.tables WHERE table_name LIKE '$wp%' 我不太确定那个查询...我对 MySQL 了解不多(只比回答您的问题所需的多一点)。请查看SELECT with CONCAT 寻求帮助。

以上是关于MySQL Drop table 不适用于前缀的主要内容,如果未能解决你的问题,请参考以下文章

APIUrl 前缀不适用于 Azure APIM

批量mysql修改表前缀

mysql批量修改表前缀

MySQL批量删除指定前缀表

将数据导入mysql中,总是提示“DROP TABLE IF EXISTS XXX(我的表名)”出错,求大神指导!!

mysql查找一个数据库中所有特定前缀的表