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.

Error de psycopg2.errors.NumericValueOutOfRange: entero fuera de rango

Estoy intentando insertar datos en la tabla de usuarios:

cursor.execute("""CREATE TABLE IF NOT EXISTS users (
        name TEXT NOT NULL, 
        id BIGINT NOT NULL, 
        xp INT NOT NULL
    )""")
    for guild in bot.guilds:
        for member in guild.members:
            if cursor.execute(f"SELECT id FROM users WHERE id = {member.id}") is None:
                if member.id not in bots:
                    cursor.execute("INSERT INTO users (name, id, xp) VALUES ('{}', {}, {});".format(member, member.id, 0))
    connect.commit()
    connect.close()

Pero sigo recibiendo el error:

File "C:\Users\belog\hat_dispenser\main.py", line 58, in on_ready
    cursor.execute("INSERT INTO users (name, id, xp) VALUES ('{}', {}, {})".format(member, member.id, 0))
psycopg2.errors.NumericValueOutOfRange: el entero está fuera de rango

He intentado darle a la columna “id” tipos de datos como BIGINT, INT, BIGSERIAL, SERIAL. Pero sigo obteniendo un error de “entero fuera de rango”. ¿Cómo puedo solucionarlo?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el valor del miembro.id es demasiado grande para el tipo de datos especificado en la tabla de la base de datos. Es posible que deba cambiar el tipo de datos de la columna id a un tipo de entero más grande, como BIGINT o UNSIGNED BIGINT. Alternativamente, puede verificar el valor máximo que el tipo de datos actual puede contener y asegurarse de que el valor de member.id esté dentro de ese rango. También puede intentar convertir el valor de member.id en una cadena antes de insertarlo en la base de datos para evitar desbordamientos de enteros.

Comments are closed.