gpt4 book ai didi

postgresql - 在 PostgreSQL 中创建表作为选择

转载 作者:行者123 更新时间:2023-11-29 11:39:18 28 4
gpt4 key购买 nike

PostgreSQL 中的

CREATE TABLE AS SELECT 语句不会使用具有原始表的 NOT NULL 约束的列创建新表。

我的表 tab1 的 col1 和 col2 没有空约束。

创建表 tab1(col1 varchar(23) 不为空,col2 int 不为空)

现在我正在创建一个新表 tab2,其中包含表 tab2 的定义和数据,如下所示:

create table tab2 as select col1,col2 from tab1

但是 tab2 的 col1 和 col2 没有 NOT NULL 约束。如何在原始表的新表列中获取确切的 NOT NULL 约束状态?

如果有任何方法可以使用 CREATE TABLE AS SELECT 语句实现此目的,我们将不胜感激。 Oracle、DB2 中的 CREATE TABLE AS SELECT 语句和 SQLServer 中的 SELECT .. INTO 将 NOT NULL CONSTRAINT 与数据一起复制。

最佳答案

PostgreSQL 中您正在寻找的功能 is in

CREATE TABLE tablename 
(LIKE parent_table INCLUDING CONSTRAINTS) /* other options too */

CREATE TABLE AS,据我所知,可以与完全任意的 SELECT 一起使用,PG 不会检查这是否只涉及一个表,更不用说尝试了推断约束。

关于postgresql - 在 PostgreSQL 中创建表作为选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7739521/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com