【问题标题】:Postgresql: Generated column as output from a functionPostgresql:生成的列作为函数的输出
【发布时间】:2021-10-08 09:33:30
【问题描述】:

我试图创建一个生成的列。它应该是某个函数的输出,其中参数作为其列之一,例如custom_function(column1)。 其中 custom_function 是 postgresql 的用户定义函数 column1 是表的任何列。 实际查询如下-

ALTER TABLE ttt.test
    ADD COLUMN "checkDigit" char GENERATED ALWAYS AS (ttt.getfunction(actual_sn)) STORED;

但收到错误“错误:生成表达式不是不可变的”

【问题讨论】:

  • edit您的问题并添加您尝试过的 SQL 语句以及您收到的完整和准确的错误消息。一切都像formatted textno screen shots
  • 错误信息很清楚:你的生成表达式(ttt.getfunction(actual_sn))不是immutable。如果您的函数是不可变的,请将其标记为不可变。如果不是,您可能需要考虑其他解决方案。
  • @NickBarnes:感谢您的快速回复。它在使函数 IMMUTABLE 后起作用。

标签: postgresql generated-columns


【解决方案1】:

使函数(ttt.getfunction) IMMUTABLE 后它起作用了。

【讨论】:

    猜你喜欢
    • 2021-03-10
    • 2016-07-25
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    • 2020-02-10
    • 1970-01-01
    • 1970-01-01
    • 2011-07-24
    相关资源
    最近更新 更多