Postgresql с python psycopg DataError: целое число вне допустимого диапазона

У меня есть строка кода, которая выдает эту ошибку: DataError: integer out of range

Строка кода такая:

c.execute("INSERT INTO Users_Chat (Chat, User, Name, Id) VALUES (%s, %s, %s, %s)", (chat_version, user_id, name_user, 0, ))

Я создал таблицу и столбцы с помощью этой команды:

CREATE TABLE Users_Chat (Chat INT, User INT, Name TEXT, Id INT);

Дополнительная запятая в конце?

oshaiken 04.09.2018 19:32

нет, проблема не в этом, я пробовал также без запятой и пробела в конце

John_python 04.09.2018 19:35

какие значения у вас есть для chat_version, user_id, name_user?

oshaiken 04.09.2018 19:41

это внутри функции, и вы передаете эти значения? потому что postgres ожидает чисел, и, вероятно, вы передаете что-то еще.

oshaiken 04.09.2018 19:41

ой, в chat_version стоит номер но начать с - можно для этого? Я работал только с sqlite, и он работал с ним. Как это -1234

John_python 04.09.2018 19:48

да, вы хотите удалить "тире" или преобразовать вводимый вами текст в "строки"

oshaiken 04.09.2018 19:50

для преобразования в строки, что вы имеете в виду? в коде, подобном этому new = str(chat_version), или в базе данных мне нужно поместить в таблицу ТЕКСТ ?. Потому что - у меня должен быть

John_python 04.09.2018 19:56

если вы хотите сохранить «тире» в версии чата, вам необходимо внести изменения в вашу базу данных / тип таблицы.

oshaiken 04.09.2018 19:57

Я понял. Спасибо за помощь

John_python 04.09.2018 19:58
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
9
2 903
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
c.execute("INSERT INTO Users_Chat (Chat, User, Name, Id) VALUES (%s, %s, %s, %s)", (chat_version, user_id, name_user, 0, ))

Ожидает только числовые / входящие значения в соответствии с документом.

Python numeric objects int, long, float, Decimal are converted into a PostgreSQL numerical representation:

https://www.postgresql.org/docs/current/static/datatype-numeric.html

Другие вопросы по теме