将时间戳放在COMMENT ON TABLE中

时间:2016-05-27 14:54:09

标签: postgresql timestamp dynamic-sql ddl postgresql-9.4

我经常在PostgreSQL(9.4.1)中重新创建一个表,就像这样:

DROP TABLE IF EXISTS test.foo;
CREATE TABLE test.foo AS
  SELECT * FROM test.dagi_kommune
  WHERE ST_Area(wkb_geometry) < 500;

我想在表格中添加注释,说明创建表格的时间。创建基本评论没有问题,例如:

COMMENT ON TABLE test.foo IS 'Table create date: ';

我还可以生成一个独立的时间戳,如下所示:

SELECT to_char(LOCALTIMESTAMP, 'YYYY-MM-DD HH:MI:SS');

但是如果我试着把时间戳放在评论中,就像这样:

COMMENT ON TABLE test.foo IS to_char(LOCALTIMESTAMP, 'YYYY-MM-DD HH:MI:SS');

我收到以下回复:

ERROR:  syntax error at or near "to_char"
LINE 10: COMMENT ON TABLE test.foo IS to_char(LOCALTIMESTAMP, 'YYYY-M...
                                  ^

********** Error **********

ERROR: syntax error at or near "to_char"
SQL state: 42601
Character: 276

如何在表格的评论中加入当前的“日期和时间”?

1 个答案:

答案 0 :(得分:5)

您必须以动态SQL构建和执行该语句。

DO
$do$
BEGIN
EXECUTE format($$COMMENT ON TABLE b2 IS 'Table create date: %s'$$, LOCALTIMESTAMP);
END
$do$

详细说明:

除此之外:我跳过to_char(),因为您想要的输出是时间戳的默认(ISO 8601)文本表示。