CREATE TABLE AS 在功能上類似於 SELECT INTO。CREATE TABLE AS 是推薦的語法,因為這種 SELECT INTO 形式在 ECPG 或 PL/pgSQL 中不可用,它們會以不同的方式解釋 INTO 子句。此外,CREATE TABLE AS 提供了 SELECT INTO 提供的功能的更多功能。
要將 OID 加到 SELECT INTO 所建立的資料表中,請啟用 default_with_oids 組態變數。或者,以 CREATE TABLE AS 與 WITH OIDS 子句一起使用。
範例
建立一個新的資料表 films_recent,其中只包含來自資料表 film 的最新項目:
SELECT * INTO films_recent FROM films WHERE date_prod >= '2002-01-01';
相容性
SQL 標準使用 SELECT INTO 將查詢結果表示為主機程序的 scalar 變量,而不是建立新資料表。這確實是 ECPG(參閱第 35 章)和 PL/pgSQL(參見第 42 章)中的用法。SELECT INTO 用於結果資料表建立的 PostgreSQL 用法是歷史性的。在新的程式中最好使用 CREATE TABLE AS 來達到此目的。