データの削除
SQLDeleteはデータベースのデータを削除する.これは,「生SQLを使ったデータの削除」に記載のように,SQLコマンドをそのまま使ってもできる.
このチュートリアルの例を実際に試してみて,記載の通りに動作しなかった場合は,「データベースの例の使用」で述べているように"DatabaseLink`DatabaseExamples`"パッケージを使ってデータベースをもとの状態に戻す必要があるかもしれない.
SQLDeleteの結果は,クエリの影響を受ける行数を示す整数となる.そのため,3行削除した場合は結果は3となり,削除しなかった場合は結果は0となる.
以下にデータを削除する例を示す.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}, {20, 17.5}}];
SQLSelect[conn, "TEST"]次の例では,表のデータをすべて削除する.2行削除されるので,結果は2となる.
SQLDelete[conn, "TEST"]SQLSelectで表のすべてのデータが削除されたことを確認する.
SQLSelect[conn, "TEST"]SQLInsert[conn, "TEST", {"COL1", "COL2"}, {{10, 10.5}, {20, 17.5}}];
SQLSelect[conn, "TEST"]最初の列の要素が15より大きい行だけを削除するように,SQLDeleteコマンドに条件を加える.1行だけ削除されるので,結果は1となる.
stmt = SQLDelete[conn, "TEST", SQLColumn["COL1"] > 15]SQLSelectを使って1行削除されたことを確認する.
SQLSelect[conn, "TEST"]SQLDeleteにはオプションが1つ使える.
オプション名
|
デフォルト値
| |
| "Timeout" | $SQLTimeout | クエリのタイムアウトを設定する |
SQLDeleteのオプション
オプション"Timeout"を使うと,実行に時間がかかりすぎるクエリをキャンセルすることができる.
SQLDropTable[conn, "TEST"];
CloseSQLConnection[conn];