假设我在SQL Server中具有下表:
CREATE TABLE Users
(
UserID int IDENTITY(1,1) PRIMARY KEY
, UserName varchar(50)
, InsertDate datetime2 DEFAULT GETDATE()
)
在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)
数据正在进入数据库。但是,如何获取刚刚插入的行中的UserID
?我考虑过编写一个包装函数,该函数首先插入到临时表中,然后使用T-SQL处理数据并返回我想要的内容。但是有没有更简单的方法?
注意:无论如何,我无法修改表的架构。我只能在数据库中创建临时表。
答案 0 :(得分:-1)
要取回数据...。您只需要查询表。
with engine.connect() as conn:
df=pd.read_sql("select * from Users",conn)