Python SQL insert语句只插入部分记录

2024-06-28 15:51:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在试图找出为什么我的sqlinsert命令会出现问题。我正在尝试每天向一个表中插入~5k条记录,并设计了一个for循环来创建一个SQL命令,为这些记录中的每一条运行insert-into

我使用下面的代码生成一个庞大的字符串,然后在SQL环境中运行

当我运行这段代码时,我最终插入了大量的记录(可以是300、1000或600)。奇怪的是,如果我直接将total\ sql字符串复制到sql server中并运行它,它将创建所有记录。所以我认为远程运行这个SQL代码有问题

以前有没有人遇到过类似的问题?我最初认为它与字符串的长度有关,但这并不能解释为什么每次运行它时记录的数量都会发生变化,所以我没有什么想法了。。谢谢

total_sql = ''
n= 0
for i in range(Mydata.shape[0]):
    current_line = '''INSERT INTO TableName (ColumnName)
    VALUES
    (''' + My_data[i] "') "
    total_sql = total_sql + current_line
    n+=1

cursor.execute(total_sql)

仅供参考,我原来有一个系统,为每一行运行一个insert,但这被证明是缓慢的,更可能导致服务器通信超时


Tags: 字符串代码命令forsqlserver记录line
1条回答
网友
1楼 · 发布于 2024-06-28 15:51:06

改用熊猫怎么样

您只需要先传入数据帧。现在是哪种格式

import pandas as pd

df.to_sql('TABLE NAME',connection, if_exists = 'append',index=False)

其中df是转换为数据帧的数据

相关问题 更多 >