问题描述
我可以通过以下方式成功地将python笔记本与sql服务器连接:
from sqlalchemy import create_engine
import sqlalchemy as sa
import urllib
params = urllib.parse.quote_plus('''DRIVER={SQL Server Native Client 11.0};
SERVER= SERVER_NAME;
DATABASE= DATABASE_NAME;
TRUSTED_CONNECTION=YES;''')
engine = create_engine("mssql+pyodbc:///?odbc_connect=%s" % params,case_sensitive=False)
让我们看一下这个示例数据框:
df = pd.DataFrame(dict(Name=['abc','def','ghi'],Date=['2018-08-15','2019-08-15','2020-08-15'],Status=[True,False,True],Max=[0,8]))
Name Date Status Max
0 abc 2018-08-15 True 0
1 def 2019-08-15 False 0
2 ghi 2020-08-15 True 8
我有一个具有相同列的sql表,名为table_name。
目标:
我要在table_name中删除所有行,其中df中的行具有相同的名称,相同的日期,相同的状态并且Max = 0(仅在table_name中,在df中不是必需的)
我尝试了以下操作,但不起作用:
connection = engine.raw_connection()
for index,row in df.iterrows():
try:
cursor = connection.cursor()
sql_Delete_query = """Delete from table_name where Date = %s AND Name = %s AND Status = %s AND Max = 0"""
cursor.execute(sql_Delete_query,(row['Date'],row['Name'],row['Status']))
connection.commit()
except:
error = True
能否请您帮助我了解问题所在?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)