CREATE TABLE AS(7)

NAME
CREATE TABLE AS - 從一條查詢的結果中建立一個新表

SYNOPSIS

CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name [ (column_name [, ...] ) ]
    AS query

DESCRIPTION 描述

CREATE TABLE AS 建立一個表並且用來自 SELECT 命令計算出來的資料填充該表。 該表的欄位和 SELECT 輸出欄位的名字及型別相關。 （只不過你可以通過明確地給出一個欄位名字列表來覆蓋 SELECT 的欄位名）。

CREATE TABLE AS 和建立檢視有點象， 不過兩者之間實在是有比較大差異：它建立一個新表並且只對 SELECT 計算一次來填充這個新表。 新表不能跟蹤 SELECT 的源表隨後做的變化。 相比之下，每次做查詢的時候，檢視都重新計算定義它的 SELECT 語句。

PARAMETERS 引數

TEMPORARY or TEMP
     如果聲明瞭這個選項，則該表作為臨時表建立。 參閱 CREATE TABLE [create_table(7)] 獲取細節。

table_name
     要建立的表名（可以是用模式修飾的）。

column_name
     欄位的名稱。如果沒有提供欄位名字，那麼就從查詢的輸出欄位名中獲取。 如果表是一個 EXECUTE 命令建立的， 那麼當前就不能宣告欄位名列表。

query
     一個查詢語句（也就是一條 SELECT 命令或者一條執行準備好的 SELECT 命令的 EXECUTE 命令），請分別參考 SELECT [select(7)] 或者 EXECUTE [execute(l)] 獲取可以使用的語法的描述。

NOTES 注意

 這條命令從功能上等效於 SELECT INTO [select_into(7)]， 但是我們更建議你用這個命令，因為它不太可能和 SELECT ... INTO 語法的其它方面的使用混淆。

COMPATIBILITY 相容性

 這條命令是根據 Oracle 的一個特性製作的。 在 SQL 標準中沒有功能相等的命令。不過， 把 CREATE TABLE 和 INSERT ... SELECT 組合起來可以通過略微多一些的工作完成同樣的事情。

SEE ALSO 參見
CREATE TABLE [create_table(7)], CREATE VIEW [create_view(l)], EXECUTE [execute(l)], SELECT [select(l)], SELECT INTO [select_into(l)]

譯者
Postgresql 中文網站 何偉平 <laser@pgsqldb.org>

跋
本頁面中文版由中文 man 手冊頁計劃提供。
中文 man 手冊頁計劃：https://github.com/man-pages-zh/manpages-zh