SQLAlchemy - 为INSERT返回生成的密钥?

时间:2017-02-15 00:47:58

标签: python sqlite sqlalchemy

我正在使用SQLAlchemy中的纯文本SQL。我不想使用ORM,除非这是唯一的方法,但是有一种方法可以在我执行INSERT时为新记录返回生成的主键值吗? Java的JDBC实用程序可以做到这一点,如果没有办法用SQLAlchemy做到这一点,我会有点惊讶......

hover the arrow .
<div>
  <div class=arrow></div>
</div>

2 个答案:

答案 0 :(得分:2)

您可以从.lastrowid获取

result = insert_new_customer(...)
result.lastrowid

答案 1 :(得分:1)

也许因为已经接受了答案已经一年多了,所以答案并没有解决问题。因此,我对sqlalchemy的文档进行了更深入的研究,发现了.inserted_primary_key。它使用connection.execute()命令返回单个插入行的主键的元组。

编辑:使用.inserted_primary_key代替.lastrowid的另一个原因:

.lastrowid特定于数据库的,它可能适用于某些数据库,而不适用于其他数据库。但是.inserted_primary_key始终运行,无论基础数据库如何