SELECT結果でINSERTする(INSERT SELECT)
やりたいこと
SELECT結果をINSERT文に使用します。
INSERT文の基本的な構成は以下のようになります。
(
[更新対象列名]
)VALUES(
[値]
)
ここでは[値]の代わりにSELECTの結果をINSERTに使用します。
データの更新は下記を参照してください。
【PL/SQL】SELECT結果でUPDATEする(UPDATE SELECT)
INSERT INTO {テーブル}
(
{列1},{列2}
) VALUES(
値1,値2
);
コード(列構成が異なるテーブルからのINSERT)
以下の例ではSELECT結果を2つの項目にINSERTしています。
組み合わせによっては、様々な情報を取得してINSERTに使用できます。
この時、列の数やデータ定義に注意してください。
--SELECTした結果でINSERTする
INSERT INTO emp_mst
(address,add_no)
SELECT address,add_no
FROM addno
WHERE add_no = '111-1111';
コード(列構成が同じテーブルからのINSERT)
以下の例では同じテーブル構成を持つ「emp_mst2」から「emp_mst」へ全件のデータがINSERTされます。
データを絞りたい場合にはSELECT文のWHERE句を追記します。
--SELECTした結果でINSERTする
INSERT INTO emp_mst
SELECT *
FROM emp_mst2;