データの挿入
SQLInsertはデータベースにデータを挿入する.これは,「生SQLを使ったデータの挿入」に記載のように,SQLコマンドをそのまま使ってもできる.
このチュートリアルの例を実際に試してみて,記載の通りに動作しなかった場合は,「データベースの例の使用」で述べているように"DatabaseLink`DatabaseExamples`"パッケージを使ってデータベースをもとの状態に戻す必要があるかもしれない.
SQLInsertの結果は,クエリの影響を受ける行数を指定する整数となる.1度に1行しか挿入できないため,1度だけ挿入する場合はこの整数は1になる.SQLInsertはバッチ挿入もサポートしている.これについては「パフォーマンス:バッチ操作」で例示する.
SQLInsert[conn,table,{columns},{values},opts] | データベースにデータを挿入する |
SQLInsert[conn,table,{columns},{{values}},opts] | データベースにデータをバッチ挿入する |
データを挿入する例を以下に示す.DatabaseLink をロードし,demoデータベースに接続する.
新しい表TESTを作る.このコマンドの詳細は「生SQLを使った表の作成」に記載されている.
SQLInsertを使ってこの表にデータを挿入する.
SQLSelectでデータがデータベースに保管されていることを確認する.
最後にバッチ挿入を実行する.変更された行数のリストが得られる.
SQLSelectを使うと,現在表には3行存在することが分かる.
SQLInsertには3つのオプションが使える.
オプション名
|
デフォルト値
| |
"Timeout" | $SQLTimeout | クエリのタイムアウトを設定する |
"BatchSize" | 1000 | この値の数のレコードの挿入をバッチ処理する |
"JavaBatching" | True | Wolfram言語層の代りにJava層でパラメータのバッチ処理を行う |
SQLInsertのオプション
オプション"Timeout"を使うと,実行に時間がかかりすぎるクエリをキャンセルすることができる.
Wolfram言語の式がデータベースに保管されている型にどのようにマップされるかについては「データ型マッピング」に詳しく記載されている.