我创建了一个具有以下属性的表
employee54(
Emp_Id int,
First_name varchar(20),
Middle_name varchar(20),
Last_name varchar(20),
Dept_Id int,
Phone_number int,
Address varchar(30)
)
我试着用这个语法做反向索引
create index emp_id_list on employee54(Emp_Id) reverse;
它显示出
错误1064(42000):您的sql语法有错误;查看与mysql服务器版本相对应的手册,以获得使用“reverse”附近的正确语法
2条答案
按热度按时间wlp8pajw1#
错误消息1064直接指向问题(或者可能直接在问题之后)。
看一下手册就会知道
ASC
以及DESC
是可能的,不是reverse
.如果您希望以相反的顺序获取行
emp_id
,然后简单地做ORDER BY emp_id DESCENDING
. 即使8.0之前的版本没有按相反的顺序实现索引创建,这也会得到所需的结果(适用于所有版本的mysql/mariadb)。hrysbysz2#
只有mysql 8.0+支持创建和使用“反向”索引。
其他mysqls版本只解析asc或desc部分,但使用它们。
键部件规范可以以asc或desc结尾,以指定索引值是按升序还是降序存储。如果未给定顺序说明符,则默认值为升序。哈希索引不允许使用asc和desc。从mysql 8.0.12开始,空间索引不允许使用asc和desc。
来源https://dev.mysql.com/doc/refman/8.0/en/create-index.html