データの更新
SQLUpdateはデータベース中のデータの更新に使う.これは,「生SQLを使ったデータの更新」に記載のように,SQLコマンドをそのまま使ってもできる.
このチュートリアルの例を実際に試してみて,記載の通りに動作しなかった場合は,「データベースの例の使用」で述べているように"DatabaseLink`DatabaseExamples`"パッケージを使ってデータベースをもとの状態に戻す必要があるかもしれない.
SQLUpdateの結果は,クエリの影響を受ける行数を示す整数となる.
| SQLUpdate[conn,table,{columns},{values},opts] | データベース内のデータを更新する |
| SQLUpdate[conn,table,{columns},{values},condition,opts] | データベース内のデータを条件付きで更新する |
以下にデータを更新する例を示す.DatabaseLink をロードし,demoデータベースに接続する.
Needs["DatabaseLink`"];
conn = OpenSQLConnection["demo"];SQLCreateTable[conn, "TEST",
{
SQLColumn["COL1", "DataTypeName" -> "INTEGER"],
SQLColumn["COL2", "DataTypeName" -> "DOUBLE"]
}];
SQLInsert[conn, "TEST", {"COL1", "COL2"}, {10, 10.5}];SQLSelectで表の中の値を見てみる.
SQLSelect[conn, "TEST"]SQLUpdateでデータベースの要素を更新し,SQLSelectでその結果を見る.
SQLUpdate[conn, "TEST", {"COL1", "COL2"}, {12, 12.5}];
SQLSelect[conn, "TEST"]一般には,どの行を更新するかを指定する条件を設定すると便利である(条件についての詳細は「データの選択」を参照).次の例では,データベースにもう1行挿入する.
SQLInsert[conn, "TEST", {"COL1", "COL2"}, {20, 20.5}];
SQLSelect[conn, "TEST"]SQLUpdate[conn, "TEST", {"COL1", "COL2"}, {4, 1.1}, SQLColumn["COL1"] < 15 ];
SQLSelect[conn, "TEST"]SQLUpdateにはオプションが1つ適用できる.
オプション名
|
デフォルト値
| |
| "Timeout" | Automatic | クエリのタイムアウトを設定する |
SQLUpdateのオプション
オプション"Timeout"を使うと,実行に時間がかかりすぎるクエリをキャンセルすることができる.
SQLDropTable[conn, "TEST"];
CloseSQLConnection[conn];