Estoy creando un contenedor de SQLite C API. Y quiero devolver rowid como tipo entero. Para marcar el caso de error, necesito un valor no válido de rowid. ¿Hay valor no válido de SQLite rowid? ¿O todos los valores en enteros de 64 bits con signo son válidos para rowid? (porque si lo es, tengo que elegir otra forma de implementar el caso de error de marcado)¿Rango válido de rowid de SQLite?
Respuesta
Los ID de fila son enteros de 64 bits, por lo que el máximo es 0x7FFFFFFFFFFFFFFFLL. Pero a menos que se haya ingresado explícitamente una identificación de fila negativa o cero, las ID de fila generadas automáticamente siempre son mayores que cero. Si puede estar seguro de que las Id. De fila siempre se generarán automáticamente, entonces cero o -1 serían valores seguros para las devoluciones de estado de error.
Pensando además, me doy cuenta de que la llamada sqlite3_last_insert_rowid
API devuelve cero si nunca se ha insertado nada en la tabla, por lo que cero es una identificación de fila "no válida" de facto.
Gracias por mencionar que se pueden insertar valores cero y negativos explícitos. Iré por otro mecanismo. :) – Eonil
- 1. ¿Rango válido para java.util.Date?
- 2. ¿Por qué no puede usar SQLite ROWID como clave principal?
- 3. Recuperar rango de la tabla sqlite
- 4. ¿Cambiar rowId en jqgrid?
- 5. Equivalente al RowID de Oracle en MySQL
- 6. El año está fuera del rango válido: 1400 ... 10000
- 7. Seleccionar números entre un rango (1 a 100) en sqlite
- 8. Oracle Database Change Notification y ROWID
- 9. Mostrar RowID en Select * (all) Statement
- 10. SQLiteDatabase.insert() devuelve rowid incorrecto para tablas virtuales
- 11. ¿Qué puede hacer que cambie Oracle ROWID?
- 12. Equivalente al RowID de Oracle en SQL Server
- 13. Usando Javascript, ¿cómo me aseguro de que un rango de fechas sea válido?
- 14. Número entero fuera de rango
- 15. Cómo saber si el archivo de base de datos sqlite es válido o no
- 16. Ordenar una tabla SQLite completa
- 17. ¿Cuál es el rango válido para el valor de retorno del programa en Linux/bash?
- 18. Supresión de filas duplicadas de la base de datos sqlite
- 19. Rango de implícita Linq rango variable
- 20. Obtener ID de fila de una tabla SQLite FTS3
- 21. Android: SQLite de diseño uno a muchos
- 22. base de datos está bloqueado en SQLite
- 23. SQLite cómo conseguir artículos de cadena usando el cursor
- 24. Grupo de SQL por rango de edad
- 25. SQLITE - eliminar filas con unión interna?
- 26. HTTP rango encabezado
- 27. VBA Rango de cadena
- 28. oráculo rango de fechas
- 29. Función de rango Python
- 30. ¿Uso válido de typedef?
Aquí está la especificación sobre rowid: http://www.sqlite.org/autoinc.html – Eonil