我想从一个数据库中获取名称,并用它创建一个新表。我想补充更多的分析,但这是我的出发点,我已经挣扎,我不知道我在哪里犯了错误。你知道吗
mydb = db_login()
# get team
team = pd.read_sql('SELECT * FROM team', con=mydb)
names = team.name.to_list()
这将输出类似于['name1','name2'…]
mycursor = mydb.cursor()
mycursor.execute("DROP TABLE IF EXISTS team_analyse")
mycursor.execute("CREATE TABLE team_analyse (name VARCHAR(50))") #todo add all needed columns
sqlFormula = "INSERT INTO team_analyse (name) VALUES (%s)" #todo initial team commit
mycursor.executemany(sqlFormula, names)
mydb.commit()
最后我得到以下错误:
mysql.connector.errors.ProgrammingError: Not all parameters were used in the SQL statement
您应该在这里使用一个
INSERT INTO ... SELECT
:更新的Python脚本:
您看到的错误消息告诉您,您传递了一个列表作为要绑定到语句的参数,但没有使用所有参数。实际上,您试图运行的单个insert语句只有一个参数。但是在任何情况下,都不需要将
team
表中的结果集放入Python的内存中。相反,使用我的建议,让MySQL来完成繁重的工作。你知道吗相关问题 更多 >
编程相关推荐