Python中文
首页
教程
问答
标签
搜索
登录
注册
Python/postgres/psycopg2:获取刚刚插入的行的ID
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我使用Python和psycopg2来连接postgres。</p> <p>当我插入一行。。。</p> <pre><code>sql_string = "INSERT INTO hundred (name,name_slug,status) VALUES (" sql_string += hundred_name + ", '" + hundred_slug + "', " + status + ");" cursor.execute(sql_string) </code></pre> <p>。。。如何获取刚刚插入的行的ID?正在尝试:</p> <pre><code>hundred = cursor.fetchall() </code></pre> <p>使用<code>RETURNING id</code>时返回错误:</p> <pre><code>sql_string = "INSERT INTO domes_hundred (name,name_slug,status) VALUES (" sql_string += hundred_name + ", '" + hundred_slug + "', " + status + ") RETURNING id;" hundred = cursor.execute(sql_string) </code></pre> <p>只需返回<code>None</code>。</p> <p>UPDATE:还有<code>currval</code>(即使在postgres中直接使用这个命令):</p> <pre><code>sql_string = "SELECT currval(pg_get_serial_sequence('hundred', 'id'));" hundred_id = cursor.execute(sql_string) </code></pre> <p>有人能建议吗?</p> <p>谢谢!</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我来到这里是因为我遇到了类似的问题,但是我们使用的是Postgres XC,它还不支持return ID子句。在这种情况下,您可以使用:</p> <pre>cursor.execute('INSERT INTO ........') cursor.execute('SELECT LASTVAL()') lastid = cursor.fetchone()['lastval']</pre> <p>以防对任何人都有用!</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何替换子字符串,但前提是它正好出现在两个单词之间
9 回答
如何替换字典中所有出现的指定字符
3 回答
如何替换字典中所有键的第一个字符?
6 回答
如何替换字典所有键中的子字符串
2 回答
如何替换字符串python中的变量值?
6 回答
如何替换字符串Python中的第二次迭代
3 回答
如何替换字符串y Python中不等于字符串x的所有内容?
2 回答
如何替换字符串中出现的第n个单词?
7 回答
如何替换字符串中单词的一部分
3 回答
如何替换字符串中同时出现的2个或更多特殊字符或下划线
7 回答
如何替换字符串中指定位置(索引)的字符?
9 回答
如何替换字符串中某个字符的所有匹配项?
8 回答
如何替换字符串中的
10 回答
如何替换字符串中的一个字符
10 回答
如何替换字符串中的主题(固定位置)
10 回答
如何替换字符串中的分隔逗号?
3 回答
如何替换字符串中的列名(python)?
4 回答
如何替换字符串中的制表符?
8 回答
如何替换字符串中的单个单词而不是用相同的字符替换其他单词
9 回答
如何替换字符串中的单个字符?
4 回答