表达式索引是非常有用的功能之一,但是使用时语法上要注意一下,表达式需要用括号括起来

expressionAn expression based on one or more columns of the table. The expression usually must be written with surrounding parentheses, as shown in the syntax. However, the parentheses can be omitted if the expression has the form of a function call.

仅仅当表达式是单一的函数时,不需要括号。

例子
如果表达式不是函数,则会有这样的错误

postgres=# create table t2(c1 text, c2 text);
CREATE TABLEpostgres=# create index idx1_t2 on t2 (c1||c2);
ERROR:  42601: syntax error at or near "||"
LINE 1: create index idx1_t2 on t2 (c1||c2);^
LOCATION:  scanner_yyerror, scan.l:1081

报错的原因是语法不支持。
解决办法,表达式用括号括起来

postgres=# create index idx1_t2 on t2( (c1||c2) );
CREATE INDEX

类似的例子还很多

postgres=# create index idx1_t4 on t2 (c1::int);
ERROR:  syntax error at or near "::"
LINE 1: create index idx1_t4 on t2 (c1::int);^postgres=# create index idx1_t3 on t2 ((c1::int));
CREATE INDEXpostgres=# create index idx1_t5 on t2 ( substring(c1,1,2) || 'abc' );
ERROR:  syntax error at or near "||"
LINE 1: create index idx1_t5 on t2 ( substring(c1,1,2) || 'abc' );^
postgres=# create index idx1_t5 on t2 ( (substring(c1,1,2) || 'abc') );
CREATE INDEX

PostgreSQL 表达式索引 - 语法注意事项相关推荐

  1. PostgreSql 唯一索引,表达式索引,部分索引

    一.唯一索引 唯一索引字面上理解就是在索引上增加唯一约束,不允许出现索引值相同的行,目前只有Btree索引可以声明唯一索引,唯一键会自动创建唯一索引.测试表: test=# create table ...

  2. postgresql两个列模糊比较_数据分析之SQL优化系列(二)---PostgreSQL 的索引

    参考<PostgreSQL11.2-中文手册> 下面这个链接,讲的通俗易懂,可以看看. 数据分析师不得不知道的SQL优化 - 鑫获 - 博客园​www.cnblogs.com 索引是提高数 ...

  3. 【Postgres】postgresql 建立索引

    一.索引的类型: PostgreSQL提供了多 种索引类型:B-Tree.Hash.GiST和GIN,由于它们使用了不同的算法,因此每种索引类型都有其适合的查询类型,缺省时,CREATE INDEX命 ...

  4. 反映参数名称:滥用C#lambda表达式还是语法亮度?

    我正在看MvcContrib网格组件,我很着迷,但同时被网格语法中使用的语法技巧击退: .Attributes(style => "width:100%") 上面的语法将生成 ...

  5. 浅谈PostgreSQL的索引

    1. 索引的特性 1.1 加快条件的检索的特性 当表数据量越来越大时查询速度会下降,在表的条件字段上使用索引,快速定位到可能满足条件的记录,不需要遍历所有记录. create table t(id i ...

  6. Lambda表达式的语法格式

    Lambda表达式的语法格式: 参数列表 => 语句或语句块 "Lambda表达式"是委托的实现方法,所以必须遵循以下规则: 1)"Lambda表达式"的 ...

  7. 索引语法——创建索引 || 查看索引 || 删除索引 || ALTER命令 索引设计原则

    索引语法 索引在创建表的时候,可以同时创建,也可以随时增加新的索引. 准备环境: 创建索引 查看索引 删除索引 ALTER命令 索引设计原则 索引的设计可以遵循一些已有的原则,创建索引的时候请尽量考虑 ...

  8. 【原创】MySQL5.7 虚拟列实现表达式索引

    MySQL自古以来就不提供函数索引这么复杂的功能.那怎么在MySQL里面实现这样的功能呢? 我们先来看看函数索引的概念.函数索引,也可称为表达式索引,也就是基于字段以特定函数(表达式)建立索引来提升查 ...

  9. postgreSQL的索引

    postgreSQL的索引主要有如下几类:B-tree.Hash.GIN.GiST.SP-GiST.BRIN.每个索引都有特定的算法来匹配不同的类型数据的查询. B-tree 索引可以应用于等值和范围 ...

最新文章

  1. 微信浏览器跳转页面加载loading效果问题
  2. java程序解压/压缩.gz文件
  3. 64位openSUSE12.3最完整的安装QQ的方法
  4. python基础(十七)
  5. IDEA打开vue项目,每次打开的都是上一次的vue项目,即同一个vue项目,解决方法
  6. JavaScript 解决浮点值运算Bug
  7. java生成pdf工具类,聪明人已经收藏了!
  8. [css] 用css画出一把刻度尺
  9. ncnn arm linux,arm ncnn
  10. pthread_mutex_lock的作用
  11. 关于linux下网卡双工模式以及多少M的疑惑
  12. 教你6步定制你的Ubuntu桌面
  13. 用php实现拍照,php中实现视频拍照
  14. rpo流程图模板_Visio Pro 2019下载-Microsoft Visio Pro(流程图制作软件)下载2019x64 简体中文版-西西软件下载...
  15. 黄健计算机科学与技术学院,计算机科学与技术学院研究生学业奖学金初评结果汇总表...
  16. 深信服虚拟服务器大融合,从虚拟化向云计算转型 深信服选择了超融合
  17. c++实现压缩解压 zip文件
  18. EI会议论文发表流程剖析(史上最详细!经典!)
  19. Winner-Take-All Autoencoders ( 赢者通吃自编码器)
  20. Kali扫描工具Recon-NG

热门文章

  1. LeetCode 54. Spiral Matrix--Python解法--螺旋排序
  2. LeetCode 850. Rectangle Area II
  3. html5 比例尺,高德地图API之缩放比例尺控件+3D转换
  4. mysql timestamp json_mysql中timestamp,datetime,int类型的区别与优劣
  5. dacom蓝牙耳机怎么重置_双蓝牙耳机另一半怎么连接
  6. ubuntu允许root远程登陆sftp
  7. C++_static,类模板、函数模板、namespace
  8. LeetCode-笔记-523. 连续的子数组和
  9. Docker(十):Docker实战 Docker 安装 Nginx
  10. 给接口自动化测试框架增色,实现企业微信测试报告