以下说明性代码用于生成作为pop_table
SQL命令序列的ALTER TABLE
字符串,每个要添加的列均包含一个。你可以
- 为单列命令创建一个列表,每个列表的格式为
ADD columnName column format
- 使用
headers
的每个元素的列数据部分填充它
-
join
来构建完整的查询序列。 ADD
部分必须用逗号,
分隔
- 将加入的列表添加到初始
ALTER TABLE
。查询以分号;
终止
headers = [ "Stack22","overflow22","rules22"]
header_columns_commands =[]
for h in headers:
header_columns_commands .append("ADD "+ h +" VARCHAR(255)")
pop_table = "ALTER TABLE players " + ",".join(header_columns_commands ) + ";"
print(pop_table)
输出:
ALTER TABLE players
ADD Stack VARCHAR(255),ADD overflow VARCHAR(255),ADD rules VARCHAR(255);
在MySQL上测试。
,
尝试将pop_table
初始化为空字符串,然后在for循环内将其串联。
pop_table = ''
for h in headers:
pop_table += "ALTER TABLE players ADD COLUMN "+ h +" VARCHAR(255)"
您还可以将其初始化为空列表,并附加生成的字符串
pop_table = []
for h in headers:
pop_table.append("ALTER TABLE players ADD COLUMN "+ h +" VARCHAR(255)")
# join them with you choice of delimiter
joined_up = ','.join(pop_table)
,
int result = a > b;
++a;
++b;
int c;
if ( result != 0 )
{
c = a++;
}
else
{
c = b++;
}
也许您是这样做的?很抱歉,自从我使用pop_table = "ALTER TABLE players "
for h in headers:
pop_table += "ADD COLUMN "+ h + " VARCHAR(255),"
#Replace the last,with a ;
pop_table.replace(pop_table[len(pop_table)-1],';')
mycursor.execute(create_table)
mycursor.execute(pop_table,multi=True)
以来已经有一段时间了。如果我没记错的话,如果您打算执行多个命令,则必须将mysql.connector
设置为multi
。
本文链接:https://www.f2er.com/2226475.html