<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # CREATE TABLE AS ## Name CREATE TABLE AS?--?從一條查詢的結果中定義一個新表 ## Synopsis ``` CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE _table_name_ [ (_column_name_ [, ...] ) ] [ WITH ( _storage_parameter_ [= _value_] [, ... ] ) | WITH OIDS | WITHOUT OIDS ] [ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ] [ TABLESPACE _tablespace_name_ ] AS _query_ [ WITH [ NO ] DATA ] ``` ## 描述 `CREATE TABLE AS`創建一個表并且用來自 `SELECT`命令的結果填充該表。該表的字段和 `SELECT`輸出字段的名字及數據類型相關。 (不過你可以通過明確地給出一個字段名字列表來覆蓋 SELECT 輸出字段的名字。) `CREATE TABLE AS`和創建視圖有點像, 不過兩者之間實在是差異很大:它創建一個新表并且只對查詢計算一次來填充這個新表。 新表不能跟蹤源表的變化。相比之下,每次做查詢的時候, 視圖都重新計算定義它的`SELECT`語句。 ## 參數 `GLOBAL` 或 `LOCAL` 忽略,僅僅為了兼容性而存在。這些關鍵字的使用已經廢棄了; 請參考[CREATE TABLE](#calibre_link-7)獲取細節。 `TEMPORARY` 或 `TEMP` 如果聲明了這個選項,則該表作為臨時表創建。 參閱[CREATE TABLE](#calibre_link-7)獲取細節。 `UNLOGGED` 如果聲明了這個選項,則該表作為非日志表創建。 參閱[CREATE TABLE](#calibre_link-7)獲取細節。 `_table_name_` 要創建的表名(可以用模式修飾)。 `_column_name_` 新表中字段的名稱。如果沒有提供字段名字,那么就從查詢的輸出字段名中獲取。 `WITH (` `_storage_parameter_` [= `_value_`] [, ... ] ) 這個子句為新表指定了可選的存儲參數;參見[_存儲參數_](#calibre_link-86)獲取更多信息。 `WITH`子句還可以包含`OIDS=TRUE`(或只是`OIDS`) 來為新表中的行分配和存儲 OID(對象表示符);或者用`OIDS=FALSE` 表示不分配 OID 。參見[CREATE TABLE](#calibre_link-7)獲取更多信息。 `WITH OIDS``WITHOUT OIDS` 這些是反對使用的、分別等價于`WITH (OIDS)`和 `WITH (OIDS=FALSE)`的語法。如果你希望同時給出`OIDS` 設置和存儲參數,必須使用`WITH ( ... )`語法;見下文。 `ON COMMIT` 可以使用`ON COMMIT`控制臨時表在事務塊結尾的行為。 三個選項是: `PRESERVE ROWS` 在事務的結尾不采取任何特別的動作,這是缺省。 `DELETE ROWS` 在每個事務塊的結尾都刪除臨時表中的所有行。 本質上是在每次提交事務后自動執行一個[TRUNCATE](#calibre_link-89)命令。 `DROP` 在當前事務塊的結尾將刪除臨時表。 `TABLESPACE` `_tablespace_name_` 指定新表將要在`_tablespace_name_` 表空間內創建。如果沒有聲明,將咨詢[default_tablespace](#calibre_link-90), 或如果該表為臨時表,那么將使用[temp_tablespaces](#calibre_link-91)。 `_query_` 一個[SELECT](#calibre_link-104)、[TABLE](#calibre_link-105) 或[VALUES](#calibre_link-106)命令,或者一個運行預備好的 `SELECT`、`TABLE`或`VALUES` 查詢的[EXECUTE](#calibre_link-107)命令。 `WITH [ NO ] DATA` 這個子句指定查詢產生的數據是否應該拷貝到新表中。如果不,那么只拷貝表結構。 缺省是拷貝數據。 ## 注意 這條命令在功能上等效于[SELECT INTO](#calibre_link-108),但是更建議你用這個命令, 因為它不太可能和`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](#calibre_link-87)的設置。 到了PostgreSQL這個變量缺省為假, 缺省行為和 8.0 之前的版本不同。因此,那些要求`CREATE TABLE AS` 創建的表包含 OID 的應用應該明確聲明`WITH (OIDS)`以確保要求的行為。 ## 例子 創建一個只包含表`films`中最近的記錄的新表`films_recent`: ``` CREATE TABLE films_recent AS SELECT * FROM films WHERE date_prod >= '2002-01-01'; ``` 要完整的拷貝一個表,也可以使用`TABLE`命令的簡易形式: ``` CREATE TABLE films2 AS TABLE films; ``` 使用預備語句創建一個只包含表`films`中最近的記錄的新臨時表 `films_recent`,該臨時表包含 OID 并且在事務結束時將被刪除: ``` PREPARE recentfilms(date) AS SELECT * FROM films WHERE date_prod > $1; CREATE TEMP TABLE films_recent WITH (OIDS) ON COMMIT DROP AS EXECUTE recentfilms('2002-01-01'); ``` ## 兼容性 `CREATE TABLE AS`兼容SQL標準, 下面是非標準的擴展: * 標準要求在子查詢子句周圍有圓括弧,在PostgreSQL 里,這些圓括弧是可選的。 * 在標準中,`WITH [ NO ] DATA`子句是必選的; 在PostgreSQL中,它是可選的。 * PostgreSQL處理臨時表的方法和標準相差較大; 參閱[CREATE TABLE](#calibre_link-7)獲取細節。 * `WITH`子句是PostgreSQL擴展, 并且 SQL 標準中也沒有存儲參數和 OID 。 * PostgreSQL表空間的概念也不是標準的一部分。 因此`TABLESPACE`子句也是擴展。 ## 又見 [CREATE MATERIALIZED VIEW](#calibre_link-109), [CREATE TABLE](#calibre_link-7), [EXECUTE](#calibre_link-107), [SELECT](#calibre_link-104), [SELECT INTO](#calibre_link-108), [VALUES](#calibre_link-106)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看