4.4. 操作符

一个操作符名是最多NAMEDATALEN-1(默认为 63)的一个字符序列,其中的字符来自下面的列表:

+ - * / < > = ~ ! @ # % ^ & | ` ?

不过,在操作符名上有一些限制:

  • and /*不能在一个操作符名的任何地方出现,因为它们将被作为一段注释的开始。
  • 一个多字符操作符名不能以+或-结尾,除非该名称也至少包含这些字符中的一个:
~ ! @ # % ^ & | ` ?

例如,@-是一个被允许的操作符名,但*-不是。这些限制允许PostgreSQL解析 SQL 兼容的查询而不需要在记号之间有空格。

当使用非 SQL 标准的操作符名时,你通常需要用空格分隔相邻的操作符来避免歧义。例如,如果你定义了一个名为@的左一元操作符,你不能写X*@Y,你必须写X* @Y来确保PostgreSQL把它读作两个操作符名而不是一个。