我正在使用SQLAlchemy中的纯文本SQL。我不想使用ORM,除非这是唯一的方法,但是有一种方法可以在我执行INSERT时为新记录返回生成的主键值吗? Java的JDBC实用程序可以做到这一点,如果没有办法用SQLAlchemy做到这一点,我会有点惊讶......
hover the arrow .
<div>
<div class=arrow></div>
</div>
答案 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将始终运行,无论基础数据库如何。