Pandas / SqlAlchemy:获取插入行的自动生成的主键

时间:2019-05-02 00:42:34

标签: python sql-server pandas sqlalchemy

我支持一些通过sqlalchemy / pyodbc支持的熊猫通过Python操作Microsoft SQL Server DB的代码。

代码通过在包含单行的数据帧上调用data_frame.to_sql('table_name', sqlalchemy_engine)来插入一行。然后,它使用data_frame子句中WHERE中的列值运行另一个查询,以从刚插入的行中检索自动生成的主键。

必须有一种更优雅的方式。我可以在sqlalchemy引擎上执行engine.execute("SELECT scope_identity();")(但是由于引擎可以按需创建连接,因此是否一定要获得用于插入的连接实例?)如果我运行的是原始SQL查询,可以在查询中包含一个OUTPUT命令,但看起来熊猫并不优雅地支持此命令。

我是否遗漏了任何东西,或者代码中已经存在的hacky路径是实现此目的的最佳方法?

0 个答案:

没有答案