跟踪 Postgres 中一行的最后修改时间戳

2024-03-16

在 Postgres 中,我想存储表的上次更新/插入时间。 Microsoft SQL Server 提供了一种类型timestamp由数据库自动维护。

But timestamp在 Postgres 中,工作方式不同,它不会自动更新,并且列始终为空。


在postgresql中,你必须使用触发器。您可以点击此链接了解如何操作https://x-team.com/blog/automatic-timestamps-with-postgresql/ https://x-team.com/blog/automatic-timestamps-with-postgresql/ .

要总结本文,您可以执行以下操作:

  1. 创建将被触发的Pl/Pgsql函数:

    CREATE OR REPLACE FUNCTION trigger_set_timestamp()
    RETURNS TRIGGER AS $$
    BEGIN
      NEW.updated_at = NOW();
      RETURN NEW;
    END;
    $$ LANGUAGE plpgsql;
    
  2. 创建您的表格

    CREATE TABLE mytable (
      id SERIAL NOT NULL PRIMARY KEY,
      content TEXT,
      updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
    );
    
  3. 最后添加触发器:

    CREATE TRIGGER set_timestamp
    BEFORE UPDATE ON mytable
    FOR EACH ROW
    EXECUTE FUNCTION trigger_set_timestamp();
    

您可以在此处找到有关该问题的更多信息:https://dba.stackexchange.com/questions/58214/getting-last-modification-date-of-a-postgresql-database-table https://dba.stackexchange.com/questions/58214/getting-last-modification-date-of-a-postgresql-database-table

希望它能帮助你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

跟踪 Postgres 中一行的最后修改时间戳 的相关文章

  • 计算日期之间的差异 - Postgres

    我需要计算 3 个不同日期的天数 我需要运行逻辑以从下面的伪逻辑获取整数值 future date 1 future date 2 今天 如何在 PostgreSQL 中实现这一点 为了实现日期相差天数 SELECT DATE PART d
  • 通过 Python 在 PostgreSQL 中的 unicode 字符串中是否允许空字节?

    unicode 字符串中是否允许空字节 我不问 utf8 我的意思是 unicode 字符串的高级对象表示 背景 我们通过 Python 在 PostgreSQL 中存储包含空字节的 unicode 字符串 如果我们再次读取字符串 字符串会
  • 如何从其他表填充表的外键

    我有以下表格 其中translation是空的 我正在尝试填充 translation id translated language id template id language id langname langcode template
  • 从日期字段提取月份

    我在 postgresql 数据库中有一个日期字段 输入字段名称 如何仅从日期字段中提取月份 我使用了下面的语法 但我希望它显示实际的月份名称 而不是月份的数值 EXTRACT MONTH FROM input AS Month 因此 如果
  • 错误:重复的键值违反了 postgreSQL 中的唯一约束

    我在更新表时遇到 postgresql 中的唯一约束问题 我有一个包含 3 列的表 并且对其中一列 internal state 有唯一约束 该表只有两列 internal state 的值为 1 0 更新查询是 UPDATE backfe
  • Postgres: \copy 语法

    使用 CentOS 7 上的 PostgreSQL 9 5 我创建了一个名为sample还有几张桌子 我有 csv数据输入 home MyUser data对于每张桌子 例如 存在TableName csv用于餐桌 TableName 如何
  • postgresql 中带有分组的嵌套聚合函数

    我正在尝试使用嵌套聚合函数和分组来获得总和的平均值 我想做的是 SELECT AVG SUM x GROUP BY y WHERE GROUP BY 也就是说 对于返回的每一行 我希望其中一个字段是总和的平均值 其中每个总和都位于 y 相同
  • 如果服务器在使用 dblink 时未请求密码,则非超级用户无法连接

    我想在我的应用程序中进行一些跨数据库引用 简而言之 我有两个数据库 分别称为meta 和op 我想从元到 op 数据库中的表进行一些选择查询 如下所示 但出现以下错误 我尝试了有密码和无密码 顺便一提caixa用户是非超级用户 我的目标服务
  • MySQL/Postgres查询5分钟间隔数据

    我需要查询方面的帮助 假设这是表中的数据 timestamp 2010 11 16 10 30 00 2010 11 16 10 37 00 2010 11 16 10 40 00 2010 11 16 10 45 00 2010 11 1
  • 在 postgres 中选择时保留顺序[重复]

    这个问题在这里已经有答案了 在 psql 中 至少在 v9 中 如果我这样做 select id from users where id in 2 1 1 and select id from users where id in 1 2 它
  • 如何在PostgreSQL事务中使用变量

    如何在 Postgresql 事务内部将值获取到变量中 如果 SELECT 没有返回任何内容 则抛出错误 如果 SELECT 返回数据 则在事务中使用它们 像这样 BEGIN activeRounds SELECT FROM rounds
  • 使用 \COPY 将带有 JSON 字段的 CSV 加载到 Postgres 中

    我正在尝试使用 COPY 命令将 TSV 数据从文件加载到 Postgres 表中 这是一个示例数据行 2017 11 22 23 00 00 id 123 class 101 level 3 这是我正在使用的 psql 命令 COPY b
  • 在 PostgreSQL 中获取 JSONB 的精简版本

    如何获取紧凑型JSONB from PostgreSQL 获取时我得到的只是空格 SELECT data FROM a table WHERE id 1 data is JSONB column unique bla bla foo bar
  • Google App Maker - 在 onclick 方法中添加时间戳收集按钮

    我到处搜索 找不到有效的具体答案 我需要在应用程序制作工具中的表单中添加一个按钮 以在单击时记录时间戳 而不是日期 到目前为止 我唯一能开始工作的是 widget datasource item Timestamp OUT new Date
  • Postgres 重叠数组中的一列

    我有一个表 A 其中有一列 col1 其中每个记录都是整数数组 col1 1 2 3 4 1 2 6 7 1 2 3 8 9 我喜欢有一行作为结果 其中包含 col1 中所有数组的重叠或相交 select overlap col1 from
  • 尝试解码 JSON 日期时显示“JSON 写入中的类型无效 (__NSTaggedDate)”

    当我尝试从具有日期变量的数据库中解码 JSON 对象时 出现错误 由于未捕获的异常 NSInvalidArgumentException 而终止应用程序 原因 JSON 写入中的无效类型 NSTaggedDate 错误发生在以下代码行 le
  • PostgreSQL 触发器不返回任何内容

    我在创建时有一个 PostgreSQL 触发器 它基本上将插入重定向到子表中 插入记录后 我想中止请求以避免重复数据 据我所知 执行此操作的唯一方法是返回NULL在触发器中 问题是我需要返回记录才能获取 ID 如果我回来NULL 我得到 N
  • 在 PostgreSQL 中进行 DROP 时,避免引用表上的独占访问锁

    为什么在 PostgreSQL 中删除表需要ACCESS EXCLUSIVE锁定任何引用的表 我怎样才能将其减少到ACCESS SHARED锁还是根本不锁 即有没有办法在不锁定引用表的情况下删除关系 我在文档中找不到任何提及需要哪些锁 但是
  • 按名称删除 jsonb 数组项

    我有下表 CREATE TABLE country id INTEGER NOT NULL PRIMARY KEY name VARCHAR 50 extra info JSONB INSERT INTO country id extra
  • 使用 gin 索引和 sqlalchemy 返回排名搜索结果

    我为全文搜索设置了 GIN 索引 我想获取与搜索查询匹配的记录列表 按排名排序 记录与搜索查询的匹配程度 对于结果 我只需要记录及其列 不需要用于排序的实际排名值 我有以下查询 它运行良好并从我的 postgresql 数据库返回预期结果

随机推荐