.\" auto-generated by docbook2man-spec $Revision: 1.1 $ .TH "SELECT INTO" "7" "2003-11-02" "SQL - Language Statements" "SQL Commands" .SH NAME SELECT INTO \- 从一个查询的结果中创建一个新表 .SH SYNOPSIS .sp .nf SELECT [ ALL | DISTINCT [ ON ( \fIexpression\fR [, ...] ) ] ] * | \fIexpression\fR [ AS \fIoutput_name\fR ] [, ...] INTO [ TEMPORARY | TEMP ] [ TABLE ] \fInew_table\fR [ FROM \fIfrom_item\fR [, ...] ] [ WHERE \fIcondition\fR ] [ GROUP BY \fIexpression\fR [, ...] ] [ HAVING \fIcondition\fR [, ...] ] [ { UNION | INTERSECT | EXCEPT } [ ALL ] \fIselect\fR ] [ ORDER BY \fIexpression\fR [ ASC | DESC | USING \fIoperator\fR ] [, ...] ] [ LIMIT { \fIcount\fR | ALL } ] [ OFFSET \fIstart\fR ] [ FOR UPDATE [ OF \fItablename\fR [, ...] ] ] .sp .fi .SH "DESCRIPTION 描述" .PP \fBSELECT INTO\fR 从一个查询的计算结果中创建一个新表。 数据并不返回给客户端,这一点和普通的 SELECT 不同。 新表的字段具有和 SELECT 的输出字段相关联(相同)的名字和数据类型。 .SH "PARAMETERS 参数" .TP \fBTEMPORARY 或 TEMP\fR 如果声明了这个关键字,那么该表是作为一个临时表创建的。 请参考 CREATE TABLE [\fBcreate_table\fR(7)] 获取细节。 .TP \fB\fInew_table\fB\fR 要创建的表的表名(可以有模式修饰)。 .PP 所有其它输入的域都在 SELECT [\fBselect\fR(7)] 中有详细描述。 .PP .SH "NOTES 注意" .PP CREATE TABLE AS [\fBcreate_table_as\fR(7)] 的作用和 SELECT INTO 相同。 我们建议使用 CREATE TABLE AS 语法, 因为 SELECT INTO 不是标准语法。 实际上,这种类型的 SELECT INTO 是不能在 ECPG 或者 PL/pgSQL 中使用的, 因为它们对 INTO 子句的解释是不同的。 .SH "COMPATIBILITY 兼容性" .PP SQL 标准用 SELECT ... INTO 表示选取数值到一个宿主程序的标量变量中, 而不是创建一个新表。这种用法实际上就是在 ECPG (参阅 Chapter 29)和PL/pgSQL (Chapter 35)里的用途。 PostgreSQL 用 SELECT INTO 代表创建表的意思是历史原因。 在新代码里我们最好使用 CREATE TABLE AS 实现这个目地。 (CREATE TABLE AS 也不是标准,但至少它出现混淆的机会少一些。) .SH "译者" .B Postgresql 中文网站 .B 何伟平 .SH "跋" .br 本页面中文版由中文 man 手册页计划提供。 .br 中文 man 手册页计划:\fBhttps://github.com/man-pages-zh/manpages-zh\fR