在postgres sql中創建表爲select在表上刪除非空限制。創建表,因爲select是在postgresql中刪除非空限制
例如:
create table A (char a not null);
create table B as select * from a;
select * from B;-- no constraint is copied from A table
請讓我知道如何表數據,以及限制複製的Postgres。
在postgres sql中創建表爲select在表上刪除非空限制。創建表,因爲select是在postgresql中刪除非空限制
例如:
create table A (char a not null);
create table B as select * from a;
select * from B;-- no constraint is copied from A table
請讓我知道如何表數據,以及限制複製的Postgres。
對此沒有單一命令解決方案。
要創建基於現有的,包括所有的約束,使用表:
create table B (like a including constraints);
一旦你這樣做,你可以從舊的數據複製到新的一個:
insert into b
select * from a;
如果您在單個事務中執行此操作,它看起來像連接到數據庫的所有其他會話的原子操作。
非常詳細的,並很好地解釋教程PostgreSQL中創建表命令9.1
http://www.postgresql.org/docs/current/static/sql-createtable.html
非空約束總是被複制(如果通過給父表的參考在創建表命令創建表),甚至用包括約束,只有檢查約束將被複制。
我將鏈接替換爲發佈版本的「官方」手冊。它包含相同的信息。 –