メインコンテンツへスキップ

一時テーブルへのデータ挿入

このコマンドが作成する一時テーブルは動的で、初めて挿入するときに実行時に生成されます。一時テーブルは名前に # が含まれることで識別されます。挿入に一時テーブルを使用する場合、一時テーブルは [TableName]#TEMP という形式で命名する必要があります。ここで TableName は挿入先テーブルの名前です。例:
INSERT INTO Orders#TEMP (ShipCity, MyCustomField__c) VALUES ('New Orders', '9000');
INSERT INTO Orders#TEMP (ShipCity, MyCustomField__c) VALUES ('New Orders 2', '9001');
INSERT INTO Orders#TEMP (ShipCity, MyCustomField__c) VALUES ('New Orders 3', '9002');
これにより、2 カラム 3 行のデータを持つ Orders#TEMP という一時テーブルが作成されます。一時テーブル自体ではデータ型を判断できないため、すべての値はメモリ内に文字列として保存されます。これらの値は、Orders テーブルに送信される際に適切な型に変換されます。

実際のテーブルへの挿入

一時テーブルにデータが挿入されたら、次は実際のテーブルに挿入します。挿入先テーブルに INSERT を実行し、一時テーブルから入力データを選択することでこれを行えます。例:
INSERT INTO Orders (Name, MyCustomField__c) SELECT Name, MyCustomField__c FROM Orders#TEMP
この例では、Orders#TEMP テーブルの全内容が Orders テーブルに渡されます。1 回のリクエストで複数の挿入を送信でき、データソースへのリクエスト数を減らすことができます。これらの統合されたリクエストにより、多くのレコードを一度に挿入する際のパフォーマンスが向上します。

結果

クエリの結果は LastResultInfo#TEMP 一時テーブルに保存されます。このテーブルは、次に一時テーブルを渡してデータが変更されるたびにクリアされ、再作成されます。LastResultInfo#TEMP テーブルには事前定義されたスキーマがないことにご注意ください。データを読み取る前に、実行時にメタデータを確認する必要があります。

一時テーブルの有効期間

一時テーブルは接続が開いている間のみ有効です。接続が閉じられると、LastResultInfo#TEMP テーブルを含むすべての一時テーブルがクリアされます。