1

なぜこのようなものが機能しないのですか?

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'
4

3 に答える 3

1

すでにインデックスになっているものに対して強制インデックスを実行しているため、(非常に役に立たない) 文句を言っていると思います。確実 SHOW INDEXES FROM <<tablename>>にする。force index 句は必要ありません。

于 2013-11-15T21:09:39.963 に答える