Cập nhật, chèn và ? ký tự trong DBEXECUTE
?
ký tự.Suất cảng bạn đã có một bảng SQL trống được gọi là các mục với hai cột: ID và tên. ID là khóa chính.
Bạn có công thức này trong ô không được bảo vệ:
=DBEXECUTE("configdb", "SELECT items.id,items.name FROM items WHERE ID=1","INSERT into items (ID,Name) VALUES (1,?)")
Ở chế độ Xem, bạn xác định 1 trong ô và nhấn Enter.
Do bảng trống và không chứa ID có giá trị 1, việc thực thi câu lệnh Chèn. Câu lệnh Chèn tạo hàng này trong bảng:
Số hàng | ID | Tên |
---|---|---|
1 | 1 | 1 |
Bằng cách nhập 1, bạn đã chỉ định ID. Bạn?
ký tự gây ra giá trị này được nhập vào cột Tên.
Bạn giờ xác định 2 trong ô. Bởi vì ID 1 hiện tại, câu lệnh Chèn không được thực hiện. Thay vào đó, hàng có chứa ID 1 được cập nhật như hiển thị trong bảng này:
Số hàng | ID | Tên |
---|---|---|
1 | 2 | 1 |
Do câu lệnh Chèn không được thực thi, cột Tên không được cập nhật.
Bạn bây giờ bạn xác định 3 trong ô. Bởi vì ID 1 không hiển thị, câu lệnh Chèn được thực thi và một hàng mới được thêm vào:
Số hàng | ID | Tên |
---|---|---|
1 | 1 | 3 |
2 | 2 | 1 |
Giá trị 1 và 3 kết quả từ một phần của công thức: VALUES (1,?)
.
Nếu bây giờ bạn chỉ định ID 4, 1 sẽ trở lại và hàng có chứa ID 1 sẽ được cập nhật.
Số hàng | ID | Tên |
---|---|---|
1 | 2 | 1 |
2 | 4 | 3 |
Nếu bạn xác định 5 hàng khác được thêm vào:
Số hàng | ID | Tên |
---|---|---|
1 | 1 | 5 |
2 | 2 | 1 |
3 | 4 | 3 |