我有以下两个表是由于在执行alter table
语句时重新启动sql而创建的:
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
如何删除这两张表?当我这样做时:
DROP TABLE `#sql-ib1647`
我收到Unknown table 'avails.#sql-ib1647'
的错误消息。这是Amazon RDS中的表格。
以下是该问题的帖子:https://forums.aws.amazon.com/thread.jspa?messageID=570645。
答案 0 :(得分:1)
使用#mysql50#
对表格进行前缀这可以解决问题。
DROP TABLE `#sql-ib1647`;
ERROR 1051 (42S02): Unknown table '#sql-ib1647'
而是使用#mysql50#作为文件名前缀,tis应该起作用:
DROP TABLE `#mysql50##sql-ib1647`;
Query OK, 0 rows affected (0.00 sec)
那是因为MySQL和MariaDB编码的特殊字符 文件系统。这里的技巧是在表名前添加#mysql50# 防止服务器转义哈希标记和连字符: