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

Python SQL insert statement only inserts part of the records

我想弄清楚为什么我的 SQL-insert 命令 运行 会出现问题。我试图每天将 ~5k 条记录插入到 table 中,并设计了一个 for 循环来创建一个 SQL-命令,运行 为其中的每一个插入一个 INSERT INTO记录。

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

当我 运行 这段代码时,我最终插入了异常数量的记录(可以是 300、1000 或 600)。 St运行gely 够了,如果我将 total_sql 字符串直接复制到 SQL 服务器并 运行 它,它会创建所有记录。所以我认为 运行 远程设置此 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)

仅供参考,我最初有一个系统 运行 为每一行插入一个,但事实证明这很慢并且更有可能导致服务器通信超时。

使用 pandas 怎么样?

你只需要先传入一个dataframe即可。现在是什么格式?

import pandas as pd

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

其中 df 是您的数据转换为数据帧的地方。