Franck White Asked: 2021-04-08 23:46:23 +0800 CST2021-04-08 23:46:23 +0800 CST 2021-04-08 23:46:23 +0800 CST 动态获取给定表中列的最新时间戳 772 我想从包含updatedPostgreSQL 列的表中获取最后一个时间图。 我想要一个函数来做到这一点。所以我可以将表名作为参数传递,函数在 column 中返回最新的时间戳updated。 我的桌子: 使用的查询: select max(updated) from mytable; postgresql dynamic-sql 1 个回答 Voted Best Answer Erwin Brandstetter 2021-04-09T14:57:21+08:002021-04-09T14:57:21+08:00 regclass作为输入和OUT参数可能最简单: CREATE OR REPLACE FUNCTION f_last_update(_tbl regclass, OUT _last_update timestamp) LANGUAGE plpgsql AS $func$ BEGIN EXECUTE 'SELECT max(updated_at) FROM ' || _tbl INTO _last_update; END $func$; 称呼: SELECT f_last_update('mytable'); 可选的模式限定和双引号在需要时: SELECT f_last_update('"My_odd_ScHeMa"."Unwise table name"'); 对 SQL 注入安全,因为regclass在转换为text. 看: 表名作为 PostgreSQL 函数参数 在 Postgresql 中查找具有空值和 NULL 值的列的表 检查字符类型列中是否存在空字符串
regclass
作为输入和OUT
参数可能最简单:称呼:
可选的模式限定和双引号在需要时:
对 SQL 注入安全,因为
regclass
在转换为text
.看: