Opdatering indsættelse og tegnet ? i DBEXECUTE
?
.Lad os sige, at du har en tom SQL-tabel med navnet Elementer, der har to kolonner: Id og navn. Id er den primære nøgle.
Du har denne formel i en ubeskyttet celle:
=DBEXECUTE("configdb", "SELECT items.id,items.name FROM items WHERE ID=1","INSERT into items (ID,Name) VALUES (1,?)")
I visningstilstand indtaster du værdien 1 i cellen og trykker på Enter.
Da tabellen er tom og ikke indeholder et id med værdien 1, udføres Indsæt-sætningen. Indsæt-sætningen opretter denne række i tabellen:
Rækkenummer | Id | Navn |
---|---|---|
1 | 1 | 1 |
Ved at indtaste 1 har du angivet id'et. Tegnet ?
forårsager, at denne værdi angives i kolonnen Navn.
Du angiver nu 2 i cellen. Da Id 1 allerede findes, udføres Indsæt-sætningen ikke. I stedet opdateres den række, der indeholder Id 1 som vist i denne tabel:
Rækkenummer | Id | Navn |
---|---|---|
1 | 2 | 1 |
Da Indsæt -sætningen ikke udføres, opdateres kolonnen Navn ikke.
Du indtaster nu 3 i cellen. Da Id 1 ikke findes, udføres Indsæt-sætningen, og der tilføjes en ny række:
Rækkenummer | Id | Navn |
---|---|---|
1 | 1 | 3 |
2 | 2 | 1 |
Værdierne 1 og 3 stammer fra denne del af formlen: VALUES (1,?)
.
Hvis du nu indtaster 4, findes Id 1 igen, og rækken med Id 1 opdateres.
Rækkenummer | Id | Navn |
---|---|---|
1 | 2 | 1 |
2 | 4 | 3 |
Hvis du indtaster 5, tilføjes der endnu en række:
Rækkenummer | Id | Navn |
---|---|---|
1 | 1 | 5 |
2 | 2 | 1 |
3 | 4 | 3 |