อัปเดต แทรก และ ? ตัวอักษรใน DBEXECUTE
?
ตัวอักษรสมมติว่าคุณมีตาราง SQL ว่างที่เรียกว่ารายการ โดยมีสองคอลัมน์: ID และชื่อ ID คือคีย์หลัก
คุณมีสูตรนี้ในเซลล์ที่ไม่มีการป้องกัน:
=DBEXECUTE("configdb", "SELECT items.id,items.name FROM items WHERE ID=1","INSERT into items (ID,Name) VALUES (1,?)")
ในโหมดมุมมอง คุณระบุ 1 ในเซลล์แล้วกด Enter
เนื่องจากตารางว่างเปล่าและไม่มี ID ที่มีค่า 1 คำสั่ง Insert จึงถูกดำเนินการ คำสั่ง Insert จะสร้างแถวนี้ในตาราง:
หมายเลขแถว | รหัส | ชื่อ |
---|---|---|
1 | 1 | 1 |
เมื่อป้อน 1 แสดงว่าคุณระบุ ID ?
ตัวอักษรทำให้ค่านี้ถูกป้อนในคอลัมน์ชื่อ
ตอนนี้คุณระบุ 2 ในเซลล์ เนื่องจากมี ID 1 อยู่ คำสั่ง Insert จึงไม่ถูกดำเนินการ แถวที่มี ID 1 จะได้รับการอัปเดตตามที่แสดงในตารางนี้แทน:
หมายเลขแถว | รหัส | ชื่อ |
---|---|---|
1 | 2 | 1 |
เนื่องจากไม่ได้ดำเนินการคำสั่ง Insert คอลัมน์ชื่อจึงไม่ได้รับการอัปเดต
ตอนนี้คุณระบุ 3 ในเซลล์ เนื่องจากไม่มี ID 1 คำสั่ง Insert จึงถูกดำเนินการและเพิ่มแถวใหม่:
หมายเลขแถว | รหัส | ชื่อ |
---|---|---|
1 | 1 | 3 |
2 | 2 | 1 |
ค่า 1 และ 3 เป็นผลมาจากส่วนนี้ของสูตร: VALUES (1,?)
หากคุณระบุ 4 ตอนนี้ ID 1 จะปรากฏขึ้นอีกครั้งและแถวที่มี ID 1 จะได้รับการอัปเดต
หมายเลขแถว | รหัส | ชื่อ |
---|---|---|
1 | 2 | 1 |
2 | 4 | 3 |
หากคุณระบุ 5 จะมีแถวเพิ่มขึ้นอีกหนึ่งแถว:
หมายเลขแถว | รหัส | ชื่อ |
---|---|---|
1 | 1 | 5 |
2 | 2 | 1 |
3 | 4 | 3 |