Mysql 键';环境管理计划编号';不';t存在于表'中;员工';

Mysql 键';环境管理计划编号';不';t存在于表'中;员工';,mysql,Mysql,为什么这样的事情不起作用 mysql> SELECT * FROM employees FORCE INDEX(emp_no) WHERE emp_no = '77899'; 其中,表如下所示: +------------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+----------

为什么这样的事情不起作用

mysql> SELECT * FROM employees FORCE INDEX(emp_no) WHERE emp_no = '77899';
其中,表如下所示:

+------------+---------------+------+-----+---------+-------+
| Field      | Type          | Null | Key | Default | Extra |
+------------+---------------+------+-----+---------+-------+
| emp_no     | int(11)       | NO   | PRI | NULL    |       |
| birth_date | date          | NO   |     | NULL    |       |
| first_name | varchar(14)   | NO   |     | NULL    |       |
| last_name  | varchar(16)   | NO   |     | NULL    |       |
| gender     | enum('M','F') | NO   |     | NULL    |       |
| hire_date  | date          | NO   |     | NULL    |       |
+------------+---------------+------+-----+---------+-------+
6 rows in set (0.01 sec)
我得到的错误是:

ERROR 1176 (42000): Key 'emp_no' doesn't exist in table 'employees'

emp_no是主键的名称并不意味着它是索引的名称

每个提示都需要索引的名称,而不是列的名称。主键的名称是PRIMARY。要查看表的索引名,请使用SHOW index。

改为这样做

mysql> SELECT * FROM employees FORCE INDEX(PRIMARY) WHERE emp_no = '77899';

emp_no是主键的名称并不意味着它是索引的名称

每个提示都需要索引的名称,而不是列的名称。主键的名称是PRIMARY。要查看表的索引名,请使用SHOW index。

改为这样做

mysql> SELECT * FROM employees FORCE INDEX(PRIMARY) WHERE emp_no = '77899';

我认为它在抱怨(非常没有帮助),因为你正在对已经是索引的东西进行强制索引。务必显示来自的索引。您不应该需要force index子句。

我认为它在抱怨(非常没有帮助),因为您正在对已经是索引的内容执行force index。务必显示来自的索引。您不应该需要force index子句。

确定吗?这篇文章会建议(我认为):从(缩短):表的主键。。。有一个关联的索引,用于快速查询性能。这很有帮助。我想我仍然有这个问题。我做了一个解释查询,但它仍然声称是一个完整的表扫描。你确定吗?这篇文章会建议(我认为):从(缩短):表的主键。。。有一个关联的索引,用于快速查询性能。这很有帮助。我想我仍然有这个问题。我做了一个解释查询,它仍然声称是一个完整的表扫描。