es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Utilizando el argumento DECIMAL(,) en pSQL para crear una tabla, se genera un error.

Mis datos para mis columnas se ven así (ejemplo de entrada decimal):

país: Belice
hdi: 0.716
índice educación: 0.695
gasto en salud 2017: 10.6
esperanza de vida: 74.6
gdp per cápita: 7005
gdp bruto: 5488.6
por debajo de la línea de pobreza: 32.5
inequidad de género: 0.429

Y estoy tratando de subirlos a mi tabla que creo aquí en SQL:

CREATE TABLE metrics (país TEXT, hdi DECIMAL(4,3),
índice educación DECIMAL(4,3), gasto en salud 2017 DECIMAL(3,1), esperanza de vida DECIMAL(4,1), gdp per cápita INTEGER, gdp bruto DECIMAL(5,1), por debajo de la línea de pobreza DECIMAL(3,1), inequidad de género DECIMAL(4,3));

Mi entendimiento de DECIMAL es que el primer argumento es para cuántos dígitos totales (antes y después del punto decimal combinados) y el segundo argumento es para la precisión (cuántos dígitos después del punto decimal)

Pero me está dando un error por el tipo de dato, este es el error que estoy obteniendo

ERROR: desbordamiento de campo numérico

¿No estoy usando DECIMAL correctamente?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que es posible que no estés usando la precisión y escala correctas para tu tipo de dato DECIMAL. La precisión y escala que defines en tu declaración CREATE TABLE determinará el número máximo de dígitos y lugares decimales que pueden almacenarse en esa columna.

    Por ejemplo, en tu declaración CREATE TABLE, has definido la columna hdi como DECIMAL(4,3), lo que significa que puede almacenar hasta 4 dígitos (en total) con 3 de ellos después del punto decimal. Sin embargo, en tu ejemplo de datos, el valor para hdi es 0.716, que tiene 4 dígitos (en total) con 3 dígitos después del punto decimal. Esto significa que está alcanzando la precisión máxima para la columna hdi y causando el error.

    Para resolver esto, es posible que necesites ajustar la precisión y escala para cada columna en tu declaración CREATE TABLE para permitir el número máximo de dígitos y lugares decimales en tus datos. Alternativamente, podrías considerar usar un tipo de dato diferente que pueda acomodar números más grandes, como DECIMAL(10,3), que puede almacenar hasta 10 dígitos (en total) con 3 dígitos después del punto decimal.

Comments are closed.