使用日期函数在Postgres中重命名数据库

时间:2018-12-14 14:22:50

标签: postgresql

我想知道如何使用当前日期重命名数据库

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您可以在DO块中使用动态SQL。在这里,我使用YYYYMMDD格式的日期后缀作为数据库名称。

knayak=# CREATE DATABASE mydatabase;
CREATE DATABASE

DO $$
BEGIN

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

knayak=#
knayak=# \l mydatabase*
                                    List of databases
        Name         | Owner  | Encoding |   Collate   |    Ctype    | Access privileges
---------------------+--------+----------+-------------+-------------+-------------------
 mydatabase_20181214 | knayak | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
(1 row)