python - 在 Python 中使用 psycopg2 获取插入行到 Redshift 表中的自动 ID

标签 python python-2.7 amazon-web-services amazon-redshift psycopg2

我正在使用 psycopg2 库从 Python 2.7 将记录插入到 Amazon Redshift 表中,我想恢复自动生成插入行的主 ID。

我已经尝试了我可以在这里或使用谷歌搜索在其他网站上找到的常用方法,例如:

conn=psycopg2.connect(conn_str)
conn.autocommit = True

sql = "INSERT INTO schema.table (col1, col2) VALUES (%s, %s) RETURNING id;"

cur = conn.cursor()
cur.execute(sql,(val1,val2))
id = cur.fetchone()[0]

我在 cur.execute 行收到一个错误:

ProgrammingError: syntax error at or near "RETURNING"

有人知道如何解决这个问题或完成同样的事情吗?

I have to use psycopg2 in my code

最佳答案

目前无法使用 Redshift,因为它不支持通过 RETURNING 语法返回最后插入的 ID。您可能需要做的是在事务中使用 SELECT MAX(id) FROM schema.table;,这可能不是您想听到的,但似乎是您可以使用Redshift 的当前状态。

关于python - 在 Python 中使用 psycopg2 获取插入行到 Redshift 表中的自动 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43239986/

相关文章:

Python 使用不带标签的 beautifulsoup 打印抓取的数据

python - 如何在 Python 中打开图像

python - 从 dict 以列表作为值创建 DataFrame

amazon-web-services - 如何获取 DynamoDB 范围键的行数?

python - 将 Python 模块集成到我的代码中的正确方法(Hg,Google Code)

python - 如何在Python中访问SVN?

Python 调用 request() 到不指向 netrc 的 SSL 站点

python - 在 PyTorch 中,当 GPU 张量被分配一个新值时,GPU 内存是否被释放?

amazon-web-services - 如何将多个 SSH key 应用于 AWS Lightsail 实例

amazon-web-services - 如何查看在 AWS ELB 后面运行的 SSH 服务器的 SSH 客户端的真实 IP