更新、挿入、および ? 文字 (DBEXECUTE)

このトピックでは、DBEXECUTE の更新と挿入動作と、? 文字の使用について説明します。

項目と呼ばれる空の SQL テーブルがあり、次の 2 つの列があるとします。ID と名前です。ID は主キーです。

この数式は保護されていないセルにあります。

=DBEXECUTE("configdb", "SELECT items.id,items.name FROM items WHERE ID=1","INSERT into items (ID,Name) VALUES (1,?)")

ビューモードで、[1] をセルに指定し、Enter キーを押します。

テーブルが空であり、値 1 の ID が含まれていないので、INSERT ステートメントが実行されます。INSERT ステートメントで、このテーブルに行を作成します。

行番号 ID 名前
1 1 1

[1] を入力することにより、ID を指定しました。?文字により、名前列にこの値が入力されます。

このセルには [2] を指定します。ID 1 が存在するため、INSERT ステートメントは実行されません。代わりに、ID 1 を含む行が、このテーブルに表示されるように更新されます。

行番号 ID 名前
1 2 1

INSERT ステートメントが実行されていないため、名前列は更新されません。

このセルには [3] を指定します。ID 1 が存在しないため、INSERT ステートメントが実行され、新しい行が追加されます。

行番号 ID 名前
1 1 3
2 2 1

値 1 と 3 は、次の数式のこの部分に由来します: VALUES (1,?)

[4] を指定すると、ID 1 が再び存在し、ID 1 を含む行が更新されます。

行番号 ID 名前
1 2 1
2 4 3

[5] を指定すると、さらに行が追加されます。

行番号 ID 名前
1 1 5
2 2 1
3 4 3