Tôi đang tạo một trình bao bọc API SQLite C. Và tôi muốn trả về rowid như kiểu số nguyên. Để đánh dấu trường hợp lỗi, tôi cần giá trị không hợp lệ của rowid. Có giá trị không hợp lệ của hàng SQLite không? Hoặc tất cả các giá trị trong số nguyên 64 bit đã ký hợp lệ cho rowid? (vì nếu có, tôi phải chọn một cách khác để triển khai trường hợp lỗi đánh dấu)Phạm vi hợp lệ của rowid SQLite?
Trả lời
ID hàng là các số nguyên được ký 64 bit, do đó tối đa là 0x7FFFFFFFFFFFFFFFLL. Nhưng trừ khi ID hàng tiêu cực hoặc số không được nhập một cách rõ ràng, ID hàng được tạo tự động luôn lớn hơn 0. Nếu bạn có thể chắc chắn rằng ID hàng sẽ luôn được tạo tự động thì 0 hoặc -1 sẽ là giá trị an toàn để trả về trạng thái lỗi.
Suy nghĩ thêm, tôi nhận thấy rằng cuộc gọi API sqlite3_last_insert_rowid
trả về số không nếu không có gì được chèn vào bảng, do đó làm cho không có ID hàng không "không hợp lệ".
Cảm ơn bạn đã đề cập đến các giá trị âm và không rõ ràng có thể được chèn vào. Tôi sẽ đi một cái gì đó cơ chế khác. :) – Eonil
- 1. sqlite được ROWID
- 2. Phạm vi giá trị gumpy hợp lệ
- 3. Phạm vi Phiên bản OSGI Hợp lệ
- 4. Vi phạm các ngoại lệ của riêng bạn trong IntelliJ
- 5. Kiểm tra phạm vi trong trường hợp của Haskell?
- 6. Vi phạm truy cập ngoại lệ Java?
- 7. Phạm vi không hợp lệ của regex Javascript trong lớp nhân vật
- 8. SQLite cuối Insert ROWID không hoạt động được
- 9. Phạm vi của XACT_ABORT
- 10. Phạm vi của typedefs
- 11. Phạm vi phụ thuộc cho trình điều khiển Derby JDBC trong phạm vi tích hợp (cayenne)
- 12. Rails3: kết hợp phạm vi với OR
- 13. Phạm vi toàn cầu của Ruby
- 14. Phạm vi deque của Python?
- 15. addEventListener và phạm vi của
- 16. Phạm vi cuộc trò chuyện có thay thế thích hợp cho phạm vi xem không?
- 17. Sử dụng Javascript, làm cách nào để đảm bảo phạm vi ngày hợp lệ?
- 18. Số hàng không hợp lệ (65536) ngoài phạm vi cho phép (0..65535)
- 19. Phạm vi đối tượng ngoại lệ trong C++
- 20. Entity Framework One-To-Many Insert - Ngoại lệ vi phạm
- 21. Dịch bitmap/tỷ lệ trong phạm vi ranh giới?
- 22. java.lang.IllegalArgumentException: pointerIndex ra khỏi phạm vi ngoại lệ - dispatchTouchEvent
- 23. Ngoại lệ SQLite: Bận SQLite
- 24. Phạm vi Toán Để Tỷ lệ Phần trăm
- 25. Vứt bỏ phạm vi ngoại lệ trong C++
- 26. Chia tỷ lệ giữa hai phạm vi số
- 27. Phạm vi hợp lệ cho giá trị trả về của chương trình trong Linux/bash là gì?
- 28. Vi phạm chế KEY UNIQUE trên null
- 29. Phạm vi mã Gradle của Android
- 30. Tiêu đề phạm vi HTTP
Đây là thông số kỹ thuật về rowid: http://www.sqlite.org/autoinc.html – Eonil