这里的程序员,温柔点。
我在只有一个表的 MySQL 数据库中工作,如下所示show tables
:
mysql> show tables;
+----------------------+
| Tables_in_widget_web |
+----------------------+
| widget_signups |
+----------------------+
1 row in set (0.00 sec)
在开发早期的某个时候,可能还有其他表格,但对于我们正在做的事情,我们认为我们可能过度架构并取消了它们。
前几天我注意到 mysql 中的自动完成功能在此数据库中无法正常工作。当我使用特定的数据库并键入时,SELECT * FROM widget<TAB>
我没有得到我习惯的旧自动完成功能。双击以查看可能的自动完成产量:
mysql> SELECT * FROM widget<TAB><TAB>
widget_date
widget_signups
[... columns on widget_signups ...]
然而,当我尝试 DROP 这个神秘且之前删除的 widget_date 表时,我可以预料地会收到错误消息,指出该表不存在。
我的问题是:如何通过删除这个幻影表来修复我心爱的 mysql 自动完成?我会假设(错误地?)mysql 命令行中的自动完成建议是从 mysql 中的表中提取的。我可以去哪里安全地解决这个问题——还是我只需要做好准备并习惯于输入整个表名?
发生这种情况是因为自动完成不是上下文感知的,它会为您提供列名
widget_date
以及您期望的表名。