Python MySql.connector-无法使用多个游标工作

时间:2019-08-31 14:34:28

标签: python python-3.x mysql-python

我正在尝试使用mysql.connector在MySql数据库中移动一些数据,并且似乎无法使多个游标正常工作。

我相信我需要3个才能工作,但是我什至不能让2个工作,所以我被困住了,一直试图找出我做错了什么,但无济于事。在过去的几个小时中,我已经读过thisthisthisthis和其他几个内容,我很茫然。我确定是我。

这是我要执行的操作的简化示例-按数据显示示例比输入要容易得多。

所需的最终结果:

<MySql_table_after>
entry  data
1       one
2       two
3       three

当前表:

<MySql_table_before>

entry data
1      o
1      n
1      e
2      t
2      w
2      o
3      t
3      h
3      r 
3      e
3      e

代码的逻辑是这样的:

第1步(第一个光标):Select Distinct(entry) FROM MySql_table_before

第2步(第2个光标):遍历第1步得出的不同结果

my_data = []
for entry in entries:
    step_2_sql = 'SELECT data FROM My_Sql_table_before WHERE entry = %s'
    step_2_variable = entry[0]
    2nd_cursor.execute(step_2_sql, step_2_variable)

遍历这些结果并附加到my_data,以''.join(my_data)结尾。 然后,第3步将是INSERT表中的条目和my_data。我什至没有尝试过,因为我无法使前两个光标起作用。

我在过去几个小时中尝试过的内容,包括尝试MySql_table_after并退出,buffered = Truemutli=True等许多变化,等等:

mycursorX.close()

我不太在意将结果放在mydb = mysql.connector.connect(PARAMS) mycursor1 = mydb.cursor(buffered=True) mycursor2 = mydb.cursor(buffered = True) sql_query = "SELECT DISTICNT(entry) FROM MySql_table_before" mycursor1.execute(sql_query,) my_results = mycursor1.fetchall() for result in my_results: sql_query_iterate = "SELECT data FROM MySql_table_before WHERE entry = %s" sql_query_iterate_variable = (result,) mycursor2.execute(sql_query_iterate, sql_query_iterate_variable,multi=True) 列中的顺序,我使用了data onetwo作为简单示例。

0 个答案:

没有答案