Si trato de insertar datos con una clave primaria de 20 dígitos en una base de datos SQLite obtengo un error con la segunda declaración de inserción porque "no es único". Si selecciono los valores, puedo ver desde el comando de SQLite que la clave primaria está escrita en notación científica. El tipo de columna es decimal. ¿Hay alguna manera de obligar a SQLite a insertar los valores "tal como están" manteniendo la precisión/"representación normal" incluso con valores tan largos?Enormes (20 dígitos) Claves principales y SQLite
Respuesta
insértala como una 'cadena', no como un número.
el campo de la clave primaria debe ser un número entero, el valor más grande es 9223372036854775807. utilice un campo separado (indexado) e inserte el valor como una cadena.
No hay ningún requisito en cuanto a que la clave primaria sea un entero en SQLite. El rowid es un entero de 64 bits, pero esa es una cuestión totalmente diferente. La clave principal puede ser cualquier tipo de datos que desee. Consulte aquí para obtener más información: http://www.sqlite.org/autoinc.html –
Extraño, parece que su envoltorio está colocando el número como un flotador. Pensé que DECIMAL estaba mapeado a un número entero internamente. Usar una cadena funcionaría, pero puede ser lento para la indexación de la cadena en lugar de una int.
DECIMAL tiene afinidad numérica. Esto significa que cualquier tipo de datos puede almacenarse, pero las cadenas se convierten a INTEGER o REAL si es posible. El OP probablemente haya declarado una columna "INTEGER PRIMARY KEY", que * does * requiere un entero con signo de 64 bits. – dan04
- 1. consulta SQLite para encontrar las claves principales
- 2. Android SQLite y enormes conjuntos de datos
- 3. Datos principales frente a Sqlite y rendimiento
- 4. Python sqlalchemy: tabla sin claves principales y valores duplicados?
- 5. ¿Cómo se corresponden los dígitos 1101004800 con el número 20?
- 6. DDD: claves principales (Id) y ORM (por ejemplo, NHibernate)
- 7. No hay claves principales o candidato en la tabla referenciada
- 8. cómo reutilizar claves principales eliminadas en mysql?
- 9. Datos principales frente a SQLite 3
- 10. SQLite: autoincrement preguntas claves primarias
- 11. C# Conversión de precisión de 20 dígitos de doble a cadena y viceversa
- 12. ¿alguien puede explicarme qué claves principales realmente hacen?
- 13. Cadenas como claves principales en la base de datos SQL
- 14. MySQL - ¿Se necesitan restricciones "NOT NULL" para las claves principales?
- 15. ¿Puedo tener varias claves principales en una sola tabla?
- 16. Pasar de ints a GUID como claves principales
- 17. es posible hacer dos claves principales en una tabla
- 18. Uso de DbUnit con tablas que no tienen claves principales
- 19. Índices y el uso de las claves principales como los índices de MySQL
- 20. ¿Cómo uso los elementos de un marco de datos como claves hash/claves del diccionario/claves principales?
- 21. Abrir archivos XML enormes y Pretty-Print
- 22. ¿Qué son punteros cercanos, lejanos y enormes?
- 23. ¿Qué hacer cuando necesitas enteros de más de 20 dígitos en mysql?
- 24. ¿Las vistas de SQL Server pueden tener claves principales y externas?
- 25. Pregunta fácil de mysql con respecto a las claves principales y una inserción
- 26. Diferentes resultados entre Haskell interactiva y compilada (Proyecto Euler 20)
- 27. varchar (20) y varchar (50) son iguales?
- 28. ¿Cómo crear y analizar cadenas enormes con javascript?
- 29. Sqlite/SQLAlchemy: ¿cómo hacer cumplir las claves externas?
- 30. Datos principales y ubicación principal
Bueno, tuve que definir la columna como TEXTO e insertar los valores citados. Creo que esto se debe a la afinidad de tipo de SQLite – tobsen
Steve, que es * tan * frío. Tengo que recordar eso. –