【问题标题】:Overloading and, or, not operators重载 and, or, not 运算符
【发布时间】:2015-04-25 12:56:31
【问题描述】:

我想为时间布尔值(即随时间变化的布尔值)重载 AND、NOT 和 OR 运算符。

声明时

CREATE OPERATOR and (
    PROCEDURE = andMov,
    LEFTARG = booleanTP,
    RIGHTARG = boolean
);

我收到错误消息

ERROR:  Syntax error near or at « and »
LINE 1: CREATE OPERATOR and (
                        ^

显然,我可以将运算符重命名为 andMov 或其他名称,但这会不太直观。我使用的是 PostgreSQL 9.4.1 版。

【问题讨论】:

  • 您介意添加andMov 和booleanTP 的定义,所以这个问题在语法错误之外有意义吗?并且总是你的 Postgres 版本。此外,要获取英文错误消息,请在您的会话中运行 SET lc_messages = 'C'

标签: postgresql boolean operators overloading


【解决方案1】:

在 postgres 中(以及一般的 SQL 中)有一些“保留”的词不能被“重新定义”。 and 就是其中之一。

保留字的完整列表:http://www.postgresql.org/docs/current/static/sql-keywords-appendix.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-15
    • 1970-01-01
    • 1970-01-01
    • 2014-02-24
    相关资源
    最近更新 更多