更新、挿入、および ? 文字 (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 |