Python 使用附加循环的含义

Python 使用附加循环的含义,python,Python,我有脚本A: ... cursor.execute('SELECT col1, col2 FROM tableA') rows = cursor.fetchall() for row in rows: statement = 'INSERT INTO tableB (col1, col2) VALUES (%s, %s)' args = row.col1, row.col2 cursor.execute(statement, args) 和脚本B: ... column

我有脚本
A

...
cursor.execute('SELECT col1, col2 FROM tableA')
rows = cursor.fetchall()
for row in rows:
    statement = 'INSERT INTO tableB (col1, col2) VALUES (%s, %s)'
    args = row.col1, row.col2
    cursor.execute(statement, args)
和脚本
B

...
columns = []
cursor.execute('SELECT col1, col2 FROM tableA')
rows = cursor.fetchall()
for row in rows:
    column_object = [row.col1, row.col2]
    columns.append(column_object)

for column_object in columns:
    statement = 'INSERT INTO tableB (col1, col2) VALUES (%s, %s)'
    args = column_object[0], column_object[1]
    cursor.execute(statement, args)

使用一个小样本测试集,我运行了两个脚本5次,性能可以忽略不计。一种方法比另一种更可取吗?

脚本A使用更少的内存,并且更短、更简单。所以我会用A


您可以通过将列的构建转换为生成器来解决B中的内存问题,但它仍然比a更复杂。

不要在查询中手动插入文本。SQL注入就是这样发生的。为什么不使用参数化查询?@Blender这是一个内部维护脚本。@FreshPrinceOfSO bad practices==bad practices。。。内部使用与否-p使用参数后,使用一种方法是否会影响另一种方法?由于游标(
cursor.fetchall()
)的结果存储在
,我假设使用游标执行新语句时循环不会中断?