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

PolarDB:INSERT

最終更新日:Jun 04, 2024

テーブルに行を追加します。

構文

INSERT INTOテーブル [サブクエリ][@ dblink ] [ ( column [, ...] ) ]
  {VALUES ( { expression | DEFAULT } [, ...] )
    [ RETURNING return_expression [, ...]
        {INTO { record | variable [, ...] }
        | BULK COLLECT INTO collection [, ...] } ]
  | query } 

説明

INSERTステートメントを実行して、新しい行をテーブルに挿入できます。 一度に1つの行を挿入することも、クエリの結果として複数の行を挿入することもできます。

リスト内の列を希望する順序でリストすることができます。 リストにない各列には、宣言されたデフォルト値またはnullのいずれかのデフォルト値が挿入されます。

列の式で正しいデータ型が使用されていない場合、自動型変換が試行されます。

INSERTステートメントがSPLプログラム内で実行され、VALUES句が使用されている場合にのみ、RETURNINGINTO { record | variable [, ...] } 句を指定できます。

INSERTステートメントがSPLプログラム内で実行された場合にのみ、RETURNING BULK COLLECT INTO collection [, ...] 句を指定できます。 BULK COLLECT INTO句のオブジェクトとして複数のcollectionを指定する場合、各collectionは単一のスカラーフィールドで構成されている必要があります。 各コレクションをレコードにすることはできません。 挿入された行ごとに、評価値return_expressionは、最初の要素から始まるcollection内の要素です。 collection内の既存の行が削除されます。 結果セットが空の場合、collectionも空になります。

テーブルに挿入できるように、テーブルに対するINSERT権限が必要です。 query句を使用してクエリから行を挿入する場合は、クエリで使用されるテーブルに対するSELECT権限も必要です。

パラメーター

パラメーター説明
table既存のテーブルの名前。 名前はスキーマで修飾できます。
dblinkリモートデータベースを識別するデータベースリンク名。 データベースリンクの詳細については、「CREATE database LINK」ステートメントをご参照ください。
columntable内の列の名前。
expressioncolumnに割り当てる式または値。
DEFAULT列のデフォルト値。
query挿入する行を提供するクエリ (SELECTステートメント) 。 詳細については、「SELECT」をご参照ください。
return_expressiontableに1つ以上の列を含めることができる式。 tableの列名がreturn_expressionに指定されている場合、return_expressionが評価されるときに列に代入される値は次のように決定されます。
  • INSERT文の値をreturn_expressionの指定された列に割り当てると、割り当てられた値はreturn_expressionの評価に使用されます。
  • INSERT文の値をreturn_expressionの指定された列に割り当てず、列定義に既定値が指定されていない場合、nullを使用してreturn_expressionを評価します。
  • INSERT文の値をreturn_expressionの指定された列に割り当てず、列定義に既定値が指定されている場合、その既定値を使用してreturn_expressionが評価されます。
recordフィールドにreturn_expressionの評価結果を割り当てるレコード。 たとえば、最初のreturn_expressionrecordの最初のフィールドに割り当てられ、2番目のreturn_expressionrecordの2番目のフィールドに割り当てられます。 レコード内のフィールドの数は式の数と一致する必要があり、フィールドは対応する式とタイプ互換である必要があります。
variablereturn_expressionの評価結果を代入する変数です。 複数のreturn_expressionvariableを指定した場合、最初のreturn_expressionは最初のvariableに割り当てられ、2番目のreturn_expressionは2番目のvariableに割り当てられます。 INTOキーワードに続く指定された変数の数は、RETURNINGキーワードに続く式の数と一致する必要があり、変数は対応する式と型互換である必要があります。
collection評価されたreturn_expressionから要素が作成されるコレクション。 単一フィールドのコレクションまたはレコードタイプのコレクションを指定できます。 各コレクションが単一フィールドで構成される複数のコレクションを指定することもできます。 戻り式の数は、指定したすべてのコレクションのフィールド数と一致し、順序付けする必要があります。 各return_expressionは、対応するcollectionフィールドと型互換である必要があります。
subqueryこのパラメーターは、サブクエリ句を指定します。

empテーブルに1行を挿入する:

INSERT INTO emp VALUES (8021、'JOHN '、'SALESMAN' 、7698、'22-FEB-07' 、1250,500、30);

この2番目の例では、commという名前の列は省略されます。 したがって、デフォルト値は null です。

INSERT INTO emp (empno、ename、job、mgr、hiredate、sal、deptno)
    値 (8022、「ピーター」、「CLERK」、7698、「03-DEC-06」、950,30); 

3番目の例では、値を指定するのではなく、hiredate列とcomm列にDEFAULT句を使用します。

INSERT INTO emp VALUES (8023、'FORD' 、'ANALYST' 、7566、NULL、3000、NULL、20);

この例では、部門名のテーブルを作成してから、テーブルに挿入します。 部門名は、deptテーブルのdname列から取得します。

テーブルの作成deptnames (
    deptname VARCHAR2 (14)
);
INSERT INTO deptnames SELECT dname FROM dept; 

select * from table1の結果をオブジェクトとして使用し、(1,1,1) の行をオブジェクトに挿入します。

INSERT INTO (SELECT * FROM table1) 値 (1、'1' 、1) ;