DATABASELINK チュートリアル

データの挿入
This feature is not supported on the Wolfram Cloud.

SQLInsertはデータベースにデータを挿入する.これは,「生SQLを使ったデータの挿入」に記載のように,SQLコマンドをそのまま使ってもできる.

このチュートリアルの例を実際に試してみて,記載の通りに動作しなかった場合は,「データベースの例の使用」で述べているようにパッケージを使ってデータベースをもとの状態に戻す必要があるかもしれない.

SQLInsertの結果は,クエリの影響を受ける行数を指定する整数となる.1度に1行しか挿入できないため,1度だけ挿入する場合はこの整数は1になる.SQLInsertはバッチ挿入もサポートしている.これについては「パフォーマンス:バッチ操作」で例示する.

SQLInsert[conn,table,{columns},{values},opts]データベースにデータを挿入する
SQLInsert[conn,table,{columns},{{values}},opts]データベースにデータをバッチ挿入する

データベースへのデータの挿入

データを挿入する例を以下に示す.DatabaseLink をロードし,demoデータベースに接続する.

In[1]:=
Click for copyable input

新しい表TESTを作る.このコマンドの詳細は「生SQLを使った表の作成」に記載されている.

In[2]:=
Click for copyable input
Out[2]=

SQLInsertを使ってこの表にデータを挿入する.

In[3]:=
Click for copyable input
Out[3]=

SQLSelectでデータがデータベースに保管されていることを確認する.

In[4]:=
Click for copyable input
Out[4]=

最後にバッチ挿入を実行する.変更された行数のリストが得られる.

In[5]:=
Click for copyable input
Out[5]=

SQLSelectを使うと,現在表には3行存在することが分かる.

In[6]:=
Click for copyable input
Out[6]=

SQLInsertには3つのオプションが使える.

オプション名
デフォルト値
"Timeout"$SQLTimeoutクエリのタイムアウトを設定する
"BatchSize"1000この値の数のレコードの挿入をバッチ処理する
"JavaBatching"TrueWolfram言語層の代りにJava層でパラメータのバッチ処理を行う

SQLInsertのオプション

オプションを使うと,実行に時間がかかりすぎるクエリをキャンセルすることができる.

表を削除し,接続を閉じる.

In[7]:=
Click for copyable input

Wolfram言語の式がデータベースに保管されている型にどのようにマップされるかについては「データ型マッピング」に詳しく記載されている.