.\" auto-generated by docbook2man-spec $Revision: 1.1 $ .TH "CREATE TABLE AS" "7" "2003-11-02" "SQL - Language Statements" "SQL Commands" .SH NAME CREATE TABLE AS \- 从一条查询的结果中创建一个新表 .SH SYNOPSIS .sp .nf CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE \fItable_name\fR [ (\fIcolumn_name\fR [, ...] ) ] AS \fIquery\fR .sp .fi .SH "DESCRIPTION 描述" .PP \fBCREATE TABLE AS\fR 创建一个表并且用来自 SELECT 命令计算出来的数据填充该表。 该表的字段和 SELECT 输出字段的名字及类型相关。 (只不过你可以通过明确地给出一个字段名字列表来覆盖 SELECT 的字段名)。 .PP \fBCREATE TABLE AS\fR 和创建视图有点象, 不过两者之间实在是有比较大差异:它创建一个新表并且只对 SELECT 计算一次来填充这个新表。 新表不能跟踪 SELECT 的源表随后做的变化。 相比之下,每次做查询的时候,视图都重新计算定义它的 SELECT 语句。 .SH "PARAMETERS 参数" .TP \fBTEMPORARY or TEMP\fR 如果声明了这个选项,则该表作为临时表创建。 参阅 CREATE TABLE [\fBcreate_table\fR(7)] 获取细节。 .TP \fB\fItable_name\fB\fR 要创建的表名(可以是用模式修饰的)。 .TP \fB\fIcolumn_name\fB\fR 字段的名称。如果没有提供字段名字,那么就从查询的输出字段名中获取。 如果表是一个 EXECUTE 命令创建的, 那么当前就不能声明字段名列表。 .TP \fB\fIquery\fB\fR 一个查询语句(也就是一条 SELECT 命令或者一条运行准备好的 SELECT 命令的 EXECUTE 命令),请分别参考 SELECT [\fBselect\fR(7)] 或者 EXECUTE [\fBexecute\fR(l)] 获取可以使用的语法的描述。 .SH "NOTES 注意" .PP 这条命令从功能上等效于 SELECT INTO [\fBselect_into\fR(7)], 但是我们更建议你用这个命令,因为它不太可能和 SELECT ... INTO 语法的其它方面的使用混淆。 .SH "COMPATIBILITY 兼容性" .PP 这条命令是根据 Oracle 的一个特性制作的。 在 SQL 标准中没有功能相等的命令。不过, 把 CREATE TABLE 和 INSERT ... SELECT 组合起来可以通过略微多一些的工作完成同样的事情。 .SH "SEE ALSO 参见" CREATE TABLE [\fBcreate_table\fR(7)], CREATE VIEW [\fBcreate_view\fR(l)], EXECUTE [\fBexecute\fR(l)], SELECT [\fBselect\fR(l)], SELECT INTO [\fBselect_into\fR(l)] .SH "译者" .B Postgresql 中文网站 .B 何伟平 .SH "跋" .br 本页面中文版由中文 man 手册页计划提供。 .br 中文 man 手册页计划:\fBhttps://github.com/man-pages-zh/manpages-zh\fR