如何删除 RDS 中的孤立表

How to drop orphaned tables in RDS

我有以下两个 table 是由于 sql 在执行 alter table 语句时重新启动而创建的:

SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME LIKE '%#sql%';

TABLE_ID    NAME    FLAG    N_COLS  SPACE   FILE_FORMAT ROW_FORMAT  ZIP_PAGE_SIZE
1674    avails/#sql-ib1647  1   10  1396    Antelope    Compact 0
1673    avails/#sql-ib1672  1   13  1395    Antelope    Compact 0

如何删除这两个 table?当我这样做时:

DROP TABLE `#sql-ib1647`

我收到一个错误 Unknown table 'avails.#sql-ib1647'。这是 Amazon RDS 中的 table。

这里是关于这个问题的 post:https://forums.aws.amazon.com/thread.jspa?messageID=570645

MySQL DOCS:

在 table 前加上 #mysql50# 这应该可以解决问题。

DROP TABLE `#sql-ib1647`;
ERROR 1051 (42S02): Unknown table '#sql-ib1647'

改为在文件名前加上#mysql50#,这应该可行:

DROP TABLE `#mysql50##sql-ib1647`;
Query OK, 0 rows affected (0.00 sec)

That's because MySQL and MariaDB encode special characters for the filesystem. The trick here is to prefix the tablename with #mysql50# to prevent the server from escaping the hash mark and hyphen: