PostgreSQL是否可以将查询结果保存为变量?

58wvjzkj  于 2023-11-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(152)

我试图改变一个数据库的名称,以包括今天的日期和PostgreSQL中使用查询的注解。
到目前为止,我已经成功地改变了名称,包括日期

\c postgres

SELECT 
    pg_terminate_backend(pid) 
FROM 
    pg_stat_activity 
WHERE 
    -- don't kill my own connection!
    pid <> pg_backend_pid()
    -- don't kill the connections to other databases
    AND datname = 'sdm'
    ;

DO $$
BEGIN

EXECUTE format ('ALTER DATABASE %I RENAME TO %I_%s', 'sdm', 'sdm', to_char(current_date,'YYYYMMDD')::TEXT);
END
$$;

字符串
以及一个在数据输出中显示注解的查询。

SELECT pg_catalog.shobj_description(d.oid, 'pg_database') AS "Description"
FROM   pg_catalog.pg_database d
WHERE  datname = 'sdm';


是否可以将注解的数据输出保存到一个变量中,并使用它来重命名数据库?

1aaf6o9v

1aaf6o9v1#

你不需要变量,因为你几乎可以在SQL语句的任何地方使用子查询:

EXECUTE
   format (
      'ALTER DATABASE %I RENAME TO %I',
      'sdm',
      (SELECT ...) || '_' ||
         to_char(current_date,'YYYYMMDD')::TEXT
   );

字符串

相关问题