CREATE TABLE AS SELECTPostgreSQL中的语句不是使用具有NOT NULL原始表约束的列创建新表.
我的表tab1有col1和col2,没有空约束.
create table tab1 (col1 varchar(23) not null, col2 int not null)
现在我正在创建一个新表tab2,其中包含表tab2的定义和数据,如下所示:
将表tab2创建为选项col1,从tab1创建col2
但是tab2的col1和col2没有NOT NULL约束.如何从原始表中的新表列中获取确切的NOT NULL约束状态?
如果有任何方法可以使用CREATE TABLE AS SELECT非常感谢的语句来实现这一点.CREATE TABLE AS SELECTOracle,DB2和SELECT .. INTOSQLServer中的语句将NOT NULL CONSTRAINT与数据一起复制.
在PostgreSQL中,您正在寻找的功能是
CREATE TABLE tablename
(LIKE parent_table INCLUDING CONSTRAINTS) /* other options too */
Run Code Online (Sandbox Code Playgroud)
CREATE TABLE AS据我所知,可以完全随意使用SELECT,PG不检查这是否只涉及一个表,更不用说尝试推断约束了.
| 归档时间: |
|
| 查看次数: |
6721 次 |
| 最近记录: |