> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloud.cdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# DELETE SELECT ステートメント

> 1 回のリクエストで複数の削除を実行するには、DELETE … SELECT 構文を使用して一時テーブルのデータから削除します。これは、まず送信するデータで一時テーブルを作成し、削除するすべてのデータが揃ったら、その一時テーブルを削除先のテーブルに渡すことで機能します。

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

一時テーブルは動的に作成され、初めて挿入するときに実行時に生成されます。一時テーブルは名前に `#` が含まれることで識別されます。削除に一時テーブルを使用する場合、一時テーブルは \[TableName]#TEMP という形式で命名する必要があります。ここで TableName は挿入先テーブルの名前です。例：

```bash theme={null}
INSERT INTO Orders#TEMP (Id) VALUES ('AX1000001');
INSERT INTO Orders#TEMP (Id) VALUES ('AX1000002');
INSERT INTO Orders#TEMP (Id) VALUES ('AX1000003');
```

これにより、1 カラム 3 行のデータを持つ Orders#TEMP という一時テーブルが作成されます。一時テーブル自体ではデータ型を判断できないため、すべての値はメモリ内に文字列として保存されます。これらの値は、Orders テーブルに送信される際に適切な型に変換されます。

## 実際のテーブルからの削除

一時テーブルにデータが挿入されたら、次は実際のテーブルから削除します。実際のテーブルから DELETE を実行し、一時テーブルから入力データを選択することでこれを行えます。例：

```bash theme={null}
DELETE FROM Orders WHERE EXISTS SELECT Id FROM Orders#TEMP
```

この例では、Orders#TEMP テーブルの全内容が Orders テーブルに渡されます。1 回のリクエストで複数の削除を送信でき、データソースへのリクエスト数を減らすことができます。これらの統合されたリクエストにより、多くのレコードを一度に削除する際のパフォーマンスが向上します。

## 結果

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

## 一時テーブルの有効期間

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