作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
有没有一种简单的方法可以为 =
定义运算符别名? PostgreSQL 中的运算符?
!=
是如何解决的?和 <>
运算符(operator)?只有 <>
运算符似乎在 pg_operators 中。是 !=
运算符硬编码?
这是使用自定义运算符的应用程序所必需的。在大多数环境中,此运算符的行为应类似于 =
。 ,但在某些情况下,我们通过创建自己的运算符和运算符类来定义特殊行为。但对于正常情况,我们的运算符应该只是 =
的别名。运算符,以便使用哪个实现对应用程序是透明的。
最佳答案
只需检查 pgAdmin,模式 pg_catalog。它包含所有运算符,并向您展示如何为所有数据类型创建它们。是的,您必须为所有数据类型创建它们。所以这不仅仅是一个“别名”,你需要很多别名。
char = char 的示例,使用 !!!!作为别名:
CREATE OPERATOR !!!! -- name
(
PROCEDURE = pg_catalog.chareq,
LEFTARG = "char",
RIGHTARG = "char",
COMMUTATOR = !!!!, -- the same as the name
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES,
MERGES
);
SELECT 'a' !!!! 'a' -- true
SELECT 'a' !!!! 'b' -- false
检查 manual以及注意命名规则,它有一些限制。
关于database - 如何在 PostgreSQL 中定义运算符别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3470418/
我是一名优秀的程序员,十分优秀!