生SQLを使ったデータの挿入
SQLコマンドINSERTは,データベースにデータを挿入するときに使う.これは「データの挿入」に記載のようにWolfram言語コマンドのSQLInsertでもできる.
このチュートリアルの例を実際に試してみて,記載の通りに動作しなかった場合は,「データベースの例の使用」で述べているように"DatabaseLink`DatabaseExamples`"パッケージを使ってデータベースをもとの状態に戻す必要があるかもしれない.
データを挿入すると,SQLExecuteの結果はクエリの影響を受ける行数を示す整数となる.
以下にデータを挿入するする例を示す.DatabaseLink をロードし,demoデータベースに接続する.
「生SQLを使った表の作成」に記載のように,表ADDRESSES,MAILERが作成される.
SQL文を使って表ADDRESSESに行を挿入する例である.
列USERNAMEは主キーとなる.つまりこれは重複してはならない.同じデータを再び挿入しようとするとエラーが生じ,結果は$Failedとなる.
次はパラメータUSERNAMEを重複しないようにする.ADDRESS,CITY,ZIPCODEの項目はそのままである.これらも重複してはならないので,エラーが生じる.
ADDRESS,CITY,ZIPCODEが重複しないように値を挿入する.
データの挿入には準備文の方が役立つことがある.また,SQLArgumentを使うと準備文中の引数領域の数が減って便利であることもある.SQLArgumentについては「SQLExecute:SQLスタイルのクエリにおける引数の列」をご覧いただきたい.
識別列は自動的に値が増加されるため値を必要としないので,大変便利である.これらは表の主キーでもある.つまり一意的に行を識別するのである.識別値はSQL文ではNullと指定しなければならない.
USERNAMEは外部キーなので,その値はADDRESSESに存在しなければならない.次の例は,user4 が ADDRESSESに存在しないために失敗する.
列SENDMAILERはデフォルト値を持っているため,データの挿入時には必要ない.
SELECT文でデータベースにデータが存在し,値を結び付けていることを確認する.