在MySQL中,我们可以设置以这种方式索引的字段的长度:
CREATE INDEX part_of_name ON customer (name(10));
我们可以在PostgreSQL中做同样的事情吗?如果是,那怎么办?
答案 0 :(得分:1)
我不知道直接执行此操作的方法,但Postgres支持表达式索引,因此您可以通过索引substring
调用来获得相同的行为:
CREATE INDEX part_of_name ON customer (SUBSTRING(customer_name FOR 10));
答案 1 :(得分:1)
如果数据类型允许修改长度,则语法结束:
create index part_of_name on customer((customer_name::varchar(10)));
Here is an example如何使用此索引;你必须在条件中使用相同的类型。
对于text
我认为@Mureinik建议是唯一的选择。无论如何,有效地使用强制转换的索引是基于表达式的索引,所以我的答案有点相同,但更接近OP语法。