gpt4 book ai didi

python - 如何使用python在postgres中获取插入或选择的行ID

转载 作者:太空狗 更新时间:2023-10-29 20:20:41 24 4
gpt4 key购买 nike

我的 postgres 查询是:

query = """INSERT INTO statustable(value) SELECT '%s' 
WHERE NOT EXISTS (SELECT id, value FROM statustable
WHERE value = '%s') RETURNING id""" % (status, status)
cursor_postgres.execute(query)
conn_postgres.commit()
statusId = cursor_postgres.fetchone()[0]
print "statusId" + str(statusId)

如果不存在,我需要获取新插入的状态值 id,如果已经存在,则选择它的 id。 RETURNING id 完全阻塞了这个查询,所以我不得不删除它以至少让选择性插入工作。

关于如何在此处获取 statusId 的任何线索?在另一个实例中,我正在执行更新插入。(如果不存在则插入,否则更新)再次在这里,我需要插入或更新的行 ID。 (不,我没有使用存储过程,如果这是您的第一个问题...)

提前致谢

最佳答案

我不能说我完全理解您坚持单个查询的动机。我认为最好的办法是进行两个简单的查询:

  1. SELECT id FROM statustable WHERE value = '%s'。如果条目存在,这将为您提供 ID,在这种情况下,请跳过第 2 步;
  2. INSERT INTO statustable(value) VALUES('%s') RETURNING id。这将为您提供新创建条目的 id

最后——虽然我还没有验证这是否是一个问题——提交中的 fetchone() 看起来有点可疑。

关于python - 如何使用python在postgres中获取插入或选择的行ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7474176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com