| PostgreSQL 7.4 文檔 | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Fast Forward | Next | |
SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
* | expression [ AS output_name ] [, ...]
INTO [ TEMPORARY | TEMP ] [ TABLE ] new_table
[ FROM from_item [, ...] ]
[ WHERE condition ]
[ GROUP BY expression [, ...] ]
[ HAVING condition [, ...] ]
[ { UNION | INTERSECT | EXCEPT } [ ALL ] select ]
[ ORDER BY expression [ ASC | DESC | USING operator ] [, ...] ]
[ LIMIT { count | ALL } ]
[ OFFSET start ]
[ FOR UPDATE [ OF tablename [, ...] ] ]SELECT INTO 從一個查詢的計算結果中創建一個新表。 數據並不返回給客戶端,這一點和普通的 SELECT 不同。 新表的字段具有和 SELECT 的輸出字段相關聯(相同)的名字和數據類型。
如果聲明了這個關鍵字,那麼該表是作為一個臨時表創建的。 請參考 CREATE TABLE 獲取細節。
要創建的表的表名(可以有模式修飾)。
所有其它輸入的域都在 SELECT 中有詳細描述。
CREATE TABLE AS 的作用和 SELECT INTO 相同。 我們建議使用 CREATE TABLE AS 語法, 因為 SELECT INTO 不是標準語法。 實際上,這種類型的 SELECT INTO 是不能在 ECPG 或者 PL/pgSQL 中使用的, 因為它們對 INTO 子句的解釋是不同的。
SQL 標準用 SELECT ... INTO 表示選取數值到一個宿主程序的標量變量中, 而不是創建一個新表。SQL92 的用法實際上就是在 ECPG (參閱 Chapter 30)和PL/pgSQL (Chapter 37)裡的用途。 PostgreSQL 用 SELECT INTO 代表創建表的意思是歷史原因。 在新代碼裡我們最好使用 CREATE TABLE AS 實現這個目地。 (CREATE TABLE AS 也不是標準,但至少它出現混淆的機會少一些。)