添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

CREATE TABLE AS

参数

TEMPORARY TEMP

如果声明了这个选项,则该表作为临时表创建。 参阅 CREATE TABLE 获取细节。

UNLOGGED

如果声明了这个选项,则该表作为非日志表创建。 参阅 CREATE TABLE 获取细节。

table_name

要创建的表名(可以用模式修饰)。

column_name

新表中字段的名称。如果没有提供字段名字,那么就从查询的输出字段名中获取。

WITH ( storage_parameter [= value ] [, ... ] )

这个子句为新表指定了可选的存储参数;参见 存储参数 获取更多信息。 WITH 子句还可以包含 OIDS=TRUE (或只是 OIDS ) 来为新表中的行分配和存储 OID(对象表示符);或者用 OIDS=FALSE 表示不分配 OID 。参见 CREATE TABLE 获取更多信息。

WITH OIDS
WITHOUT OIDS

这些是反对使用的、分别等价于 WITH (OIDS) WITH (OIDS=FALSE) 的语法。如果你希望同时给出 OIDS 设置和存储参数,必须使用 WITH ( ... ) 语法;见下文。

ON COMMIT

可以使用 ON COMMIT 控制临时表在事务块结尾的行为。 三个选项是:

PRESERVE ROWS

在事务的结尾不采取任何特别的动作,这是缺省。

DELETE ROWS

在每个事务块的结尾都删除临时表中的所有行。 本质上是在每次提交事务后自动执行一个 TRUNCATE 命令。

DROP

在当前事务块的结尾将删除临时表。

TABLESPACE tablespace_name

指定新表将要在 tablespace_name 表空间内创建。如果没有声明,将咨询 default_tablespace , 或如果该表为临时表,那么将使用 temp_tablespaces

query

一个 SELECT TABLE VALUES 命令,或者一个运行预备好的 SELECT TABLE VALUES 查询的 EXECUTE 命令。

WITH [ NO ] DATA

这个子句指定查询产生的数据是否应该拷贝到新表中。如果不,那么只拷贝表结构。 缺省是拷贝数据。

注意

这条命令在功能上等效于 SELECT INTO ,但是更建议你用这个命令, 因为它不太可能和 SELECT INTO 语法的其它方面混淆。另外, CREATE TABLE AS 提供了 SELECT INTO 功能的超集。

PostgreSQL 8.0 之前, CREATE TABLE AS 总是在它创建的表中包含 OID , 而在 PostgreSQL 8.0 里, CREATE TABLE AS 命令允许明确声明是否应该包含 OID 。如果没有明确声明是否应该包含 OID , 那么使用配置变量 default_with_oids 的设置。 到了 PostgreSQL 这个变量缺省为假, 缺省行为和 8.0 之前的版本不同。因此,那些要求 CREATE TABLE AS 创建的表包含 OID 的应用应该明确声明 WITH (OIDS) 以确保要求的行为。