【问题标题】:Returning a set of hstore values as a set of records of a table type将一组 hstore 值作为表类型的一组记录返回
【发布时间】:2015-02-24 23:59:46
【问题描述】:

我开始尝试 http://wiki.postgresql.org/wiki/Audit_trigger_91plus 中描述的 Postgres 的审计日志功能 此函数将更改记录的新值存储在 hstore 字段中。

我想检索 hstore 字段值作为已记录表的记录集

Postgres 文档说将 hstore 转换为记录类型是这样的:

CREATE TABLE test (col1 integer, col2 text, col3 text);
SELECT * FROM populate_record(null::test, '"col1"=>"456", "col2"=>"zzz"');

这适用于单条记录,但我不知道如何对多条记录执行相同操作。我试过这个:

SELECT
  populate_record(null::public.usr, logged_actions.row_data)
FROM
  audit.logged_actions
WHERE
  audit.logged_actions.table_name = 'usr'

...但它为 usr 表的每条记录返回一个复合列。

任何想法如何在这里将 hstore 值集作为 usr 类型的记录返回?

【问题讨论】:

    标签: postgresql hstore


    【解决方案1】:

    我在这里找到了答案,非常感谢 Sergey Konoplev:

    http://www.postgresql.org/message-id/CAHot5JHzZ1LRHk3vizuTX2-Bw-C54cz-tFL7Cg=99t6LLaCoZA@mail.gmail.com

    SELECT
      (populate_record(null::public.usr, logged_actions.row_data)).*
    FROM
      audit.logged_actions
    WHERE
      audit.logged_actions.table_name = 'usr'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-09
      • 1970-01-01
      • 1970-01-01
      • 2011-08-13
      • 1970-01-01
      相关资源
      最近更新 更多