从另一个表创建一个表

时间:2014-10-30 18:04:37

标签: sql postgresql

我想从另一个表(模式副本)创建一个表,但不是数据,只是模式。有这样的SQL或Postgres方法吗?希望可以复制索引的东西。约束。

同样,一旦创建了表,就可以保持模式同步,以防将来对原始表进行任何更改。将保存模式的手动同步。可能是Postgres有什么用?

3 个答案:

答案 0 :(得分:3)

是的,请使用create table like

create table new_table (like old_table);

手册中的更多细节:
http://www.postgresql.org/docs/current/static/sql-createtable.html

like子句将复制索引并检查约束,但不会复制外键约束。

它不会让new_table与旧版本保持“同步” - 而且我不清楚为什么你会这么想。

答案 1 :(得分:0)

仅使用

复制结构
Select * into newtable from oldtable where 1=2

答案 2 :(得分:0)

使用CREATE TABLE AS SELECT,其中SELECT不返回任何内容。

CREATE TABLE 
    new_table 
AS 
    SELECT 
        * 
    FROM 
        old_table 
    WHERE 
        FALSE=TRUE