从 DataFrame 插入时获取身份密钥

Mik*_*son 5 dataframe pandas sql-server-2014

假设我在 SQL Server 中有下表:

CREATE TABLE Users
(
     UserID          int IDENTITY(1,1) PRIMARY KEY
,    UserName        varchar(50)
,    InsertDate      datetime2 DEFAULT GETDATE()
)
Run Code Online (Sandbox Code Playgroud)

在Python中,我想从DataFrame插入到这个表中并取回UserID我刚刚插入的行

import numpy as np
import pandas as pd
import sqlalchemy as sa

engine = sa.create_engine(...)
df = pd.DataFrame({'UserName': ['Alice', 'Bob']})
df.to_sql('Users', engine, if_exists='append', index=False)
Run Code Online (Sandbox Code Playgroud)

数据正在进入数据库。但是我怎样才能取回UserID我刚刚插入的行呢?我考虑编写一个包装函数,首先插入到临时表中,然后使用 T-SQL 来操作数据并返回我想要的内容。但有没有更简单的方法呢?

注意:无论如何我都无法修改表的架构。我只能在数据库中创建临时表。

Tim*_*eed -6

要取回数据......您只需查询表即可。

with engine.connect() as conn:
    df=pd.read_sql("select * from Users",conn)
Run Code Online (Sandbox Code Playgroud)