【发布时间】:2021-09-10 07:08:58
【问题描述】:
我正在尝试将 PostgreSQL 与 Python (v3.9.4) 接口。
这是我的代码的 sn-p:
content = 'this is a message'
user = 'Random User'
num_words = len(content.split())
cursor.execute('''
INSERT INTO Rankings (UserName, Words)
VALUES (%s, %s)
ON CONFLICT (UserName)
DO UPDATE
SET Words = Words + %s
''', (user, num_words, num_words))
我已经正确地创建了一个 PostgreSQL 连接和游标对象。并且还创建了一个包含 2 列的表格 - 用户名和单词。
但是,我一直遇到同样的错误:
psycopg2.errors.AmbiguousColumn: column reference "words" is ambiguous
LINE 6: SET Words = Words + 1
^
当我将 SET Words = Words + %s 更改为 SET Words = %s 时,一切正常。如何增加 Words 的现有值而不导致此错误?
【问题讨论】:
-
仅供参考,截至 2021 年 2 月,Postgres 9.5 已停产。表列名称实际上是混合大小写还是小写?
-
它们是大小写混合的。
标签: python python-3.x postgresql error-handling postgresql-9.5