postgresql/lightdb中对应ctas的select into

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了postgresql/lightdb中对应ctas的select into相关的知识,希望对你有一定的参考价值。

  在postgresql/lightdb中,可以使用​​SELECT INTO(它不是ISO SQL的一部分,但是因为历史原因存在)​​​创建一个新表并且用一个查询 计算得到的数据填充它。这些数据不会像普通的 ​​SELECT​​​那样被返回给客户端。新表的列具有 和​​SELECT​​​的输出列相关的名称和数据类型。例如,创建一个只由来自​​films​​​的最近项构成的 新表​​films_recent​​:

SELECT * INTO films_recent FROM films WHERE date_prod >= 2002-01-01;

兼容性问题

  在SQL 标准中,使用​​SELECT INTO​​​表示把值选择 到一个宿主程序的标量变量中,而不是创建一个新表。这实际上就是 ECPG(见​​第 35 章​​​)和 PL/pgSQL(见​​第 42 章​​​) 中的用法。 PostgreSQL使用 ​​SELECT INTO​​​的来表示表创建是有历史原因的,在parse analyze第一步也会先把SELECT转换为CTAS。 最好在新代码中使用​​CREATE TABLE AS​​。

  与​​CREATE TABLE AS​​​相比,​​SELECT INTO​​​ 不允许指定属性,就像带有​​USING ​method​​​的表访问方法或者带有​​TABLESPACE ​tablespace_name​​​的表的表空间。 如果必要,使用​​CREATE TABLE AS​​​。因此,为新表选择默认表访问方法。详细信息请参阅​​default_table_access_method​​。



以上是关于postgresql/lightdb中对应ctas的select into的主要内容,如果未能解决你的问题,请参考以下文章

我们可以在 Amazon redshift 中使用 CTAS 创建表时使用压缩吗

雪花存储过程 - 如何检索 CTAS 语句创建的行数

DB2 CTAS 令牌错误

sql 蜂巢CTAS

CTAS COPY INTO 的输出

使用 CTAS 命令后 Netezza 表大小增加