我的 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 吗?在另一个例子中,我正在执行 Upsert。(如果不存在则插入,否则更新)这里我需要插入或更新的行 ID。(不,我没有使用存储过程,如果这是你的第一个问题......)
提前致谢