すべてのプロダクト
Search
ドキュメントセンター

PolarDB:SELECT INTO

最終更新日:May 31, 2024

このトピックでは、SELECT INTOステートメントについて説明します。

背景情報

SELECT INTOはテーブルを作成し、クエリで取得したデータをテーブルに入力します。 クエリで取得したデータは、標準のSELECTステートメントのようにクライアントに返されません。 新しいテーブルの列は、SELECT結果の列の名前とデータ型を使用します。

構文

[ WITH [ RECURSIVE ] with_query [, ...] ]]
    SELECT [ ALL | DISTINCT [ ON (式 [, ...] ) ] ]
        * | 式 [ [ AS ] output_name ] [, ...]
        INTO [ TEMPORARY | TEMP | UNLOGGED ] [ TABLE ] new_table
        [FROM from_item [, ...] ]
        [ WHERE condition ]
        [GROUP BY式 [, ...] ]
        [HAVINGコンディション]
        [WINDOW window_name AS ( window_definition ) [, ...] ]
        [ { UNION | INTERSECT | EXCEPT } [ ALL | DISTINCT ] select ]
        [ORDER BY expression [ ASC | DESC | USING演算子] [ NULLS { FIRST | LAST } ] [, ...] ]
        [LIMIT { count | ALL } ]
        [オフセットスタート [ROW | ROWS ] ]
        [FETCH { FIRST | NEXT } [ count ] { ROW | ROWS} のみ]
        [FOR { UPDATE | SHARE } [ OF table_name [, ...] ] ] [ NOWAIT ] [...] ] 

Parameters

  • TEMPORARYまたはTEMPパラメーターを指定すると、一時テーブルが作成されます。 詳細については、「CREATE TABLE」をご参照ください。

  • UNLOGGEDパラメーターを指定すると、LOGGEDテーブルが作成されます。

  • new_tableパラメーターは、新しいテーブルの名前を指定します (名前はスキーマ修飾できます) 。

    説明

    その他のパラメーターの詳細については、「SELECT」をご参照ください。

使用上の注意

CREATE TABLE ASは、SELECT INTOと機能が似ています。 SELECT INTOは、INTO句の解釈が異なるecpgまたはPL/pgSQLでは使用できないため、CREATE TABLE ASを使用することを推奨します。 さらに、CREATE TABLE ASは、SELECT INTOのスーパーセットである機能を提供します。

CREATE TABLE ASとは異なり、SELECT INTOでは、USINGメソッドのテーブルアクセスメソッドやTABLESPACE tablespace_nameのテーブルスペースなどの属性を指定できません (必要に応じてCREATE table asを使用します) 。 したがって、新しいテーブルにはデフォルトのテーブルアクセス方法が選択されます。

filmsテーブルの最近のデータのみを含むfilms_recentテーブルを作成します。

SELECT * INTO films_recent FROM films WHERE date_prod >= '2002-01-01 ';