【问题标题】:Clone postgres table including indexes and data [duplicate]克隆包含索引和数据的postgres表[重复]
【发布时间】:2021-05-20 16:23:39
【问题描述】:

我需要克隆一个 Postgres 表。这必须包括所有数据、索引约束、架构的所有方面。

我一直在删除和创建表格,但是由于表格的大小,这非常耗时。

是否可以在一个语句中做到这一点?

 CREATE TABLE "dbHelper"."tmp_manual_forwarding" (LIKE "dbHelper"."tmp_manual" INCLUDING ALL) AS
SELECT * FROM "dbHelper"."tmp_manual"

【问题讨论】:

  • 最好的选择是pg_dump 并恢复转储。

标签: postgresql performance


【解决方案1】:

老兄!

两行简单的解决方案:

CREATE TABLE new_table AS 
SELECT * FROM existing_table

【讨论】:

    【解决方案2】:

    您可以通过运行以下代码简单地复制所有约束等,但您可能需要运行单独的查询将数据复制到新创建的表中。

    我建议改用转储机制:https://www.postgresql.org/docs/9.1/backup-dump.html

    CREATE TABLE new_table (LIKE original_table INCLUDING ALL);

    【讨论】:

    • 这不包括数据?
    • @Martin INCLUDING ALL 是 INCLUDING DEFAULTS INCLUDING CONSTRAINTS INCLUDING INCLUDING INCLUDING INCLUDING INCLUDING COMMENTS 的缩写形式。
    • @dinindu: 但这不包括数据
    • @a_horse_with_no_name 我同意,我没有对此进行测试。似乎不包括数据。马丁,您最好使用 pg_dump 代替。或者全部复制后,运行单独的插入查询。
    猜你喜欢
    • 1970-01-01
    • 2014-01-22
    • 2013-06-29
    • 1970-01-01
    • 2012-09-10
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多