【问题标题】:PostgreSQL merge two schemas with identical tablesPostgreSQL 合并两个具有相同表的模式
【发布时间】:2012-03-16 19:43:59
【问题描述】:

我有一些一年的数据,但它分为两个模式。如何将它们放在一个模式中,以便我可以使用 MATLAB 进行处理。

【问题讨论】:

    标签: postgresql schema


    【解决方案1】:

    如果您在两个模式中的表名都是唯一的,您可以在 psql shell 中使用

    ALTER TABLE old_schema.table_name SET SCHEMA new_Schema;
    

    另一方面,当 Matlab 不允许您访问任何模式时,我会感到惊讶。您是否尝试使用old_schema.table1new_schema.table2 访问您的表?在这种情况下,您不必更改数据库。

    编辑

    如果您有很多表,则必须为每个表发出上述命令。没有办法解决这个问题。但有一点帮助:您可以计算命令并手动执行结果。计算是这样完成的:

    select 'ALTER TABLE '||table_schema||'.'||table_name||' SET SCHEMA new_schema' 
       from information_schema.tables 
       where table_type = 'BASE TABLE' and table_schema = 'old_schema';
    

    【讨论】:

    • 好的,这适用于一个表,但我得到了 28 个表,并希望通过 SQL 代码来完成。是的,matlab 可以做到这一点,但我需要一个 shema,因为我的 GUI 构造让我别无选择。
    • hmm ok thx,是否也可以合并两个具有相同表名的相同模式?
    • 没有。您必须先重命名表。 ALTER TABLE old RENAME TO new; 会这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 2016-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多