@kiak0n0v

Где ошибка в строке запроса к PosgreSQL?

values = ({'user_id': int(message.from_user.id),
                   'username': str(message.from_user.username),
                   'first_name': str(message.from_user.first_name),
                   'messages_sent': 1,
                   'status': 'Default'})
        @db_connect
        def f(cursor):
            cursor.execute("""INSERT INTO senders (user_id, username, first_name, messages_sent, status) VALUES (%(user_id)s, %(username)s, %(first_name)s, %(messages_sent)s, %(status)s) ON CONFLICT (user_id) DO UPDATE SET messages_sent = (SELECT COUNT(*) as counted FROM allmessages WHERE sender_id = %(user_id)s ) WHERE user_id = %(user_id)s;""", values)
        f()


Передаются данные из Python в SQL запрос, выдает такую ошибку, в чем проблема?
64a458365f9b1675650103.png
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
@Akina
Сетевой и системный админ, SQL-программист.
В запросе, использующем более одной таблицы, все имена полей должны указываться как минимум с алиасом таблицы.

Ну и, спрашивая про запрос, следует показывать не код на питоне, а именно текст запроса.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы