简体   繁体   English

如何使用python将pandas DataFrame逐行(逐行)插入sql server

[英]how to insert pandas DataFrame into sql server line by line (row by row) using python

im trying to insert pandas into sql server line by line not all on the same time casue the DataFrame contain a huge lines i want the insert to be row by row and after every row print "insert done" or something like this我试图将pandas逐行插入sql server,而不是同时插入,因为DataFrame包含一个巨大的行我希望插入是逐行的,并且在每一行之后打印“插入完成”或类似的东西

this my code that insert all the lines in same time这是我同时插入所有行的代码

df = pd.DataFrame(data)

cursor = conn.cursor()
cursor.execute('''
SET ANSI_WARNINGS OFF;
                            CREATE TABLE Dir1(
                                EventID int,
                                Task int,
                                EventRecordID int,
                                Channel nvarchar(50),
                                computer nvarchar(50),
                                TargetUserName nvarchar(max),
                                TargetDomainName nvarchar(max),
                                TargetSid nvarchar(max),
                                ObjectClass nvarchar(max),
                                OpCorrelationID nvarchar(max),
                                SubjectUserSid nvarchar(max),
                                SubjectUserName nvarchar(max),
                                SubjectDomainName nvarchar(max),
                                


                                )
                                   ''')
for row in df.itertuples():
    cursor.execute('''
                                         INSERT INTO Dir1 (EventID,Task,EventRecordID,Channel,Computer,
                                TargetUserName,
                                TargetDomainName,
                                TargetSid,
                                ObjectClass,
                                OpCorrelationID,
                                SubjectUserSid,
                                SubjectUserName 
                                
                                )
                                         VALUES (?,?,?,?,?,?,?,?,?,?,?,?)
                                         SET ANSI_WARNINGS ON;
                                         ''',

                   row.EventID,
                   row.Task,
                   row.EventRecordID,
                   row.Channel,
                   row.Computer,
                   row.TargetUserName,
                   row.TargetDomainName,
                   row.TargetSid,
                   row.ObjectClass,
                   row.OpCorrelationID,
                   row.SubjectUserSid,
                   row.SubjectUserName,
                
                   )

conn.commit()
import pyodbc as ps
import pandas as pd
conn=ps.connect('Driver={SQL Server};'
            'Server=server_namwe;'
            'Database=practice_db;'
            'Trusted_Connection=yes;'
            )
cursor=conn.cursor()
df=pd.read_csv(r'C:\Users\zhaider\Desktop\bs.csv')
for i,j in df.iterrows():
      cursor.execute(f'''insert into tbl99 (series,status) values(?,?)''',
               j['Series'],j['STATUS'])
cursor.commit()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM