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

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

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

実際のテーブルの更新

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

結果

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

一時テーブルの有効期間

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