如何使用 'pymysql' 从 python 列名和数据类型列表中进行动态 'CREATE TABLE' MySQL 查询?

How to make a dynamic 'CREATE TABLE' MySQL query from python list of column names and datatypes usin 'pymysql'?

我有以下数据:

table_name=xyz
column_names=['c1', 'c2', 'c3', 'c4']
column_datatypes=['VARCHAR(40)', 'BIGINT(40)', 'BIGINT(20)', 'VARCHAR(10)'] 

我正在从文件中读取。即上面列表的长度可以 vary.So 我想创建一个动态 'CREATE TABLE' MySQL 查询,例如:

CREATE TABLE xyz(c1 VARCHAR(40),c2 BIGINT(40),c3 BIGINT(20),c4 VARCHAR(10));

如何伪造如上所示的字符串查询(可能使用 string.format())?

另外,请为这个问题投票(如果值得的话),因为我之前的问题没有收到任何投票,因此我即将被禁止提出进一步的问题。

给你!

import MySQLdb as mdb



table_name='xyz'
column_names=['c1', 'c2', 'c3', 'c4']
column_datatypes=['VARCHAR(40)', 'BIGINT(40)', 'BIGINT(20)', 'VARCHAR(10)']

db=mdb.connect(host='localhost',user='root',passwd='*****',db='test',port=3306)
cursor=db.cursor()

create_stement='create table '+table_name + '('
i=0
while i< len(column_names)-1 :

    create_stement =create_stement +column_names[i] +'  '+column_datatypes[i]+' ,'
    i=i+1

create_stement =create_stement +column_names[i] +'  '+column_datatypes[i]+' )'

print(create_stement)
cursor.execute(create_stement)
print('Done')