У меня есть строка кода, которая выдает эту ошибку: 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);
нет, проблема не в этом, я пробовал также без запятой и пробела в конце
какие значения у вас есть для chat_version, user_id, name_user?
это внутри функции, и вы передаете эти значения? потому что postgres ожидает чисел, и, вероятно, вы передаете что-то еще.
ой, в chat_version стоит номер но начать с -
можно для этого? Я работал только с sqlite, и он работал с ним. Как это -1234
да, вы хотите удалить "тире" или преобразовать вводимый вами текст в "строки"
для преобразования в строки, что вы имеете в виду? в коде, подобном этому new = str(chat_version)
, или в базе данных мне нужно поместить в таблицу ТЕКСТ ?. Потому что -
у меня должен быть
если вы хотите сохранить «тире» в версии чата, вам необходимо внести изменения в вашу базу данных / тип таблицы.
Я понял. Спасибо за помощь
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
Дополнительная запятая в конце?